JavaScript's Date object, ported from Java in 1995, has caused bugs for three decades due to mutability, inconsistent month arithmetic, and ambiguous parsing. After years of workarounds via libraries like Moment.js, the Temporal proposal reached TC39 Stage 4 and will be part of ES2026. Temporal introduces immutable datetime types (ZonedDateTime, Instant, PlainDate, PlainDateTime, etc.), first-class time zone and calendar support, and nanosecond precision. The 9-year effort involved Bloomberg, Igalia, Microsoft, Google, and Mozilla, and produced a shared Rust implementation library (temporal_rs) that passes 100% of the test suite and is used by multiple engines. Temporal is already available in Firefox v139, Chrome v144, Edge v144, and TypeScript 6.0 Beta.

18m read timeFrom bloomberg.github.io
Post cover image
Table of contents
How Does JavaScript Change? #A Product of Its Time #The Web Grew Up, Date Didn't #The Library Era #The Champions Assemble #How Temporal Looks Today #Implementation #Shipped & Standardized #What's Next? #A Better Time for JavaScript #

Sort: