This commit is contained in:
2026-09-28 23:15:47 +05:30
commit 605c6a2e58
41 changed files with 4299 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
export function isoToSql(iso: string): string | null {
const date = new Date(iso);
if (Number.isNaN(date.getTime())) return null;
return date.toISOString().slice(0, 23).replace("T", " ");
}
export function sqlDateToIso(value: unknown): string | null {
if (value === null || value === undefined) return null;
if (value instanceof Date) {
if (Number.isNaN(value.getTime())) return null;
return value.toISOString();
}
const raw = String(value).trim();
if (!raw) return null;
if (/[zZ]$/.test(raw) || /[+-]\d{2}:?\d{2}$/.test(raw)) {
const date = new Date(raw);
if (Number.isNaN(date.getTime())) return null;
return date.toISOString();
}
const normalized = raw.includes("T") ? raw : raw.replace(" ", "T");
const withMs = /\.\d{1,3}$/.test(normalized) ? normalized : `${normalized}.000`;
const date = new Date(`${withMs}Z`);
if (Number.isNaN(date.getTime())) return null;
return date.toISOString();
}