Standard Library Utilities
Date Formatting
Fixed dates make date formatting deterministic and easy to replay.
Date
A `Date` stores a specific moment, and formatting code decides how to display it.
Date Formatting
date.ts
Replay: real traced execution (multi-file project)
function addDays(date: Date, days: number): Date {
const next: Date = new Date(date.getTime());
next.setUTCDate(next.getUTCDate() + days);
return next;
}
const daysToAdd: number = 3;
const start: Date = new Date("2025-01-10T00:00:00Z");
const finish: Date = addDays(start, daysToAdd);
const text: string = finish.toISOString().slice(0, 10);
console.log(`finish=${text}`);
function addDays(date: Date, days: number): Date {
const next: Date = new Date(date.getTime());
next.setUTCDate(next.getUTCDate() + days);
return next;
}
const daysToAdd: number = 1;
const start: Date = new Date("2025-01-10T00:00:00Z");
const finish: Date = addDays(start, daysToAdd);
const text: string = finish.toISOString().slice(0, 10);
console.log(`finish=${text}`);
function addDays(date: Date, days: number): Date {
const next: Date = new Date(date.getTime());
next.setUTCDate(next.getUTCDate() + days);
return next;
}
const daysToAdd: number = 7;
const start: Date = new Date("2025-01-10T00:00:00Z");
const finish: Date = addDays(start, daysToAdd);
const text: string = finish.toISOString().slice(0, 10);
console.log(`finish=${text}`);
daysToAdd ← 3, start ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
4 return next;5}67const daysToAdd→ 3: number = 3; //@daysToAdd=1, 78const start→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date("2025-01-10T00:00:00Z");9const finish: Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd3);10const text: string = finish.toISOString().slice(0, 10);next ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
1function addDays(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date, days3: number): Date {2 const next→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getTime());3 next.setUTCDate(next→ Mon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getUTCDate() + days3);4 return nextMon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time);5}finish ← Mon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
7const daysToAdd: number = 3; //@daysToAdd=1, 78const start: Date = new Date("2025-01-10T00:00:00Z");9const finish→ Mon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd3);10const text→ 2025-01-13: string = finishMon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time).toISOString().slice(0, 10);1112console.log(`finish=${text2025-01-13}`);outputfinish=2025-01-13
daysToAdd ← 1, start ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
4 return next;5}67const daysToAdd→ 1: number = 1;8const start→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date("2025-01-10T00:00:00Z");9const finish: Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd1);10const text: string = finish.toISOString().slice(0, 10);next ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
1function addDays(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date, days1: number): Date {2 const next→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getTime());3 next.setUTCDate(next→ Sat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getUTCDate() + days1);4 return nextSat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time);5}finish ← Sat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
7const daysToAdd: number = 1;8const start: Date = new Date("2025-01-10T00:00:00Z");9const finish→ Sat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd1);10const text→ 2025-01-11: string = finishSat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time).toISOString().slice(0, 10);1112console.log(`finish=${text2025-01-11}`);outputfinish=2025-01-11
daysToAdd ← 7, start ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
4 return next;5}67const daysToAdd→ 7: number = 7;8const start→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date("2025-01-10T00:00:00Z");9const finish: Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd7);10const text: string = finish.toISOString().slice(0, 10);next ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
1function addDays(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date, days7: number): Date {2 const next→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getTime());3 next.setUTCDate(next→ Fri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getUTCDate() + days7);4 return nextFri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time);5}finish ← Fri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time)
7const daysToAdd: number = 7;8const start: Date = new Date("2025-01-10T00:00:00Z");9const finish→ Fri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd7);10const text→ 2025-01-17: string = finishFri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time).toISOString().slice(0, 10);1112console.log(`finish=${text2025-01-17}`);outputfinish=2025-01-17