snippetjavascriptModeratepending
JavaScript Temporal API -- modern date/time handling
Viewed 0 times
TemporalPlainDateZonedDateTimeDurationInstantdate replacement
browsernodejs
Problem
Date object is broken: months are 0-indexed, no timezone support, parsing is unreliable, no duration/interval types. Temporal API is the replacement.
Solution
Temporal provides PlainDate, PlainTime, ZonedDateTime, Duration, and Instant for correct date/time handling. Available via polyfill now.
Code Snippets
Temporal API for dates, times, and durations
// PlainDate -- no timezone, no time
const date = Temporal.PlainDate.from('2024-03-15');
const nextWeek = date.add({ days: 7 });
date.month; // 3 (not 0-indexed!)
date.dayOfWeek; // 5 (Friday)
// ZonedDateTime -- full timezone awareness
const meeting = Temporal.ZonedDateTime.from({
year: 2024, month: 3, day: 15,
hour: 14, minute: 30,
timeZone: 'America/New_York',
});
const inTokyo = meeting.withTimeZone('Asia/Tokyo');
// Duration
const duration = Temporal.Duration.from({ hours: 2, minutes: 30 });
const end = meeting.add(duration);
// Comparison
Temporel.PlainDate.compare(date1, date2); // -1, 0, 1
// Instant -- absolute point in time (like Unix timestamp)
const now = Temporal.Now.instant();
const epoch = now.epochMilliseconds;Revisions (0)
No revisions yet.