Initial commit: KOC LOOP platform
This commit is contained in:
26
lib/date-utils.ts
Normal file
26
lib/date-utils.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
export function parseStoredDate(value: string) {
|
||||
const trimmed = value.trim();
|
||||
const normalized = /^\d{4}-\d{2}-\d{2}$/.test(trimmed)
|
||||
? `${trimmed}T00:00:00+08:00`
|
||||
: /^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?$/.test(
|
||||
trimmed,
|
||||
)
|
||||
? `${trimmed.replace(" ", "T")}Z`
|
||||
: trimmed;
|
||||
return new Date(normalized);
|
||||
}
|
||||
|
||||
export function formatShanghaiDate(
|
||||
value: string | null | undefined,
|
||||
withTime = false,
|
||||
) {
|
||||
if (!value) return "—";
|
||||
const date = parseStoredDate(value);
|
||||
if (Number.isNaN(date.getTime())) return value;
|
||||
return new Intl.DateTimeFormat("zh-CN", {
|
||||
timeZone: "Asia/Shanghai",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
...(withTime ? { hour: "2-digit", minute: "2-digit" } : {}),
|
||||
}).format(date);
|
||||
}
|
||||
Reference in New Issue
Block a user