fix: preserve fractional timestamp input compatibility
CSS quality / css-quality (push) Has been cancelled

This commit is contained in:
hectorzhao
2026-09-14 15:20:30 +08:00
parent a420d61b23
commit 97d1334423
3 changed files with 3 additions and 2 deletions
@@ -26,6 +26,7 @@ describe('public HTTP input boundaries', () => {
['2026-09-14T08:00:00+08:00', '2026-09-14T00:00:00.000Z'], ['2026-09-14T08:00:00+08:00', '2026-09-14T00:00:00.000Z'],
['2026-09-14T00:00Z', '2026-09-14T00:00:00.000Z'], ['2026-09-14T00:00Z', '2026-09-14T00:00:00.000Z'],
['2000-02-29T00:00:00.123Z', '2000-02-29T00:00:00.123Z'], ['2000-02-29T00:00:00.123Z', '2000-02-29T00:00:00.123Z'],
['2026-09-14T00:00:00.123456789Z', '2026-09-14T00:00:00.123Z'],
])('preserves valid calendar dates/timezones %s', (value, expected) => { ])('preserves valid calendar dates/timezones %s', (value, expected) => {
expect(parseOpenApiDate(value).toISOString()).toBe(expected); expect(parseOpenApiDate(value).toISOString()).toBe(expected);
}); });
+1 -1
View File
@@ -12,7 +12,7 @@ export function pinnedWebhookLookup(address: string, family: number): LookupFunc
/** Validate calendar components before Date can normalize an impossible day. */ /** Validate calendar components before Date can normalize an impossible day. */
export function parseOpenApiDate(value: string): Date { export function parseOpenApiDate(value: string): Date {
const parts = /^(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,3}))?)?(Z|[+-]\d{2}:\d{2}))?$/.exec( const parts = /^(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|[+-]\d{2}:\d{2}))?$/.exec(
value, value,
); );
if (parts) { if (parts) {
+1 -1
View File
@@ -398,7 +398,7 @@ headers["Idempotency-Key"] = "sms-order-20260914-0001"
查询代码没有额外强制“只查最近 N 天”,但历史查询能否返回数据取决于实际留存、当前应用归属和筛选条件。startTime 必须不晚于 endTime,当前时间边界两端均包含。跨窗口同步可按上行 id 去重,避免公共边界重复计入。 查询代码没有额外强制“只查最近 N 天”,但历史查询能否返回数据取决于实际留存、当前应用归属和筛选条件。startTime 必须不晚于 endTime,当前时间边界两端均包含。跨窗口同步可按上行 id 去重,避免公共边界重复计入。
时间接受 `YYYY-MM-DD`(按UTC零点)或带 `Z` / `±HH:mm` 时区的ISO 8601时间;秒可省略,小数秒最多三位。日期必须在日历上真实存在,不接受2月30日、24:00、无时区日期时间或本地化日期格式;空字符串也不是省略参数。游标中的时间执行同样校验。 时间接受 `YYYY-MM-DD`(按UTC零点)或带 `Z` / `±HH:mm` 时区的ISO 8601时间;秒可省略,小数秒按毫秒精度解析,更高精度输入保留兼容。日期必须在日历上真实存在,不接受2月30日、24:00、无时区日期时间或本地化日期格式;空字符串也不是省略参数。游标中的时间执行同样校验。
### 7.1 列表与筛选 ### 7.1 列表与筛选