Files
lingxi/packages/shared/src/time.ts
T
Stev_Wang 23067edb8f feat(api): 搭建 API 与 Worker 骨架及契约基线
NestJS 11 + Fastify 统一错误体与 trace_id,/health 真实探活 DB/Redis,OpenAPI 3.1 契约含 20 个错误码;shared 包提供错误码、权限点、ULID、分页与通用 schema;worker 完成队列进程骨架。
2026-11-02 17:20:46 +08:00

24 lines
759 B
TypeScript

/** 时间工具:统一 ISO 8601(UTC)字符串,跨端序列化口径一致 */
export function nowIso(): string {
return new Date().toISOString();
}
export function toIsoString(value: Date | number | string): string {
const date = value instanceof Date ? value : new Date(value);
if (Number.isNaN(date.getTime())) {
throw new TypeError(`无法解析时间:${String(value)}`);
}
return date.toISOString();
}
export function addSeconds(date: Date, seconds: number): Date {
return new Date(date.getTime() + seconds * 1000);
}
const ISO_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;
export function isIsoDateString(value: string): boolean {
return ISO_PATTERN.test(value) && !Number.isNaN(Date.parse(value));
}