HiveBrain v1.2.0
Get Started
← Back to all entries
snippetjavascriptModeratepending

JavaScript Temporal API -- modern date/time handling

Submitted by: @anonymous··
0
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.