A 50-year accident: how JavaScript got Date, and why Temporal exists
summary
JavaScript Date is a single mutable number representing milliseconds since 1970 so it exposes only UTC or the host zone, yields off‑by‑one months, and forces ad hoc workarounds. Temporal adds a new, immutable set of types — Instant, PlainDateTime, ZonedDateTime, Duration — separating epoch time, wall clock dates, zones and durations. The proposal spends nine years to land in ECMAScript 2026 and Node 26, depends on the IANA tzdb for correctness, and already fixes most common calendar and DST failure modes.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 1:54JavaScript Date problems
- 4:46Unix time limitations
- 7:15Time zones maintenance
- 9:07Java’s mutable Date
- 11:18Moment.js rise and fall
- 12:45Temporal API proposal
- 15:23Temporal adoption challenges
related talks
58mIt's Time to Talk About Time
01h 13mTempus Fugit: A story of time
29mTemporal: Keep Time on Your Side
01h 04mHow to outsmart time: Building futuristic JavaScript applications using Temporal
22mThe Past, Present, and Future of JavaScript Date and Time APIs
19mProgramming in the 4th Dimension - Making Time Make Sense
46mFrom Roman Emperors to the Temporal API: Conquering Dates and Times in JS
50mIt’s About Time! Practical examples of time zones in TypeScript
