Back to news
"The Temporal proposal, co-championed by Igalia, advances to Stage 4 at TC39 — replacing JavaScript's Date API after nine years of work."

TC39’s 113th plenary in New York closed this week with the Temporal proposal advancing to Stage 4. Temporal replaces JavaScript’s Date API, which has badly underserved developers since 1995.

Several current and former Igalians contributed to Temporal. Ms2ger brought years of careful spec writing and vital review work; Philip Chimento and Ujjwal Sharma co-championed the proposal. Aditi Singh, Ben Allen, Cam Tenny, Dan Ehrenberg, Guillaume Emont, Ioanna Dimitriou, Jesse Alama, Romulo Cintra, Sarah, and Tim Chevalier all contributed throughout the project’s life. Bloomberg, whose collaboration with us first got us working on it, funded the work and contributed engineering directly.

Besides its default ISO 8601 calendar, Temporal also supports a number of regional calendars — Gregorian, Japanese, Hebrew, Persian, Chinese, Islamic, and others. To ensure these work consistently across implementations, a companion ECMA-402 proposal was also needed. The Intl.era and Intl.monthCode proposal specifies the details Temporal deliberately leaves open: the valid era codes, eraYear semantics, and monthCode values for each of those calendars. We worked on this as part of our long-running collaboration with Google’s i18n team, with Ben Allen, Philip Chimento, and Ujjwal Sharma as the main contributors from our side.

Igalia also ended up working on RFC 9557, the Internet Extended Date/Time Format (IXDTF). Temporal needs a standard way to serialize timestamps with timezone and calendar information, but the conventions in wide use — like appending IANA timezone names to timestamps — had never been on a formal standards track. RFC 9557 fixes that, and also defines the new syntax for calendar annotations ([u-ca=hebrew] and similar) that Temporal requires for round-tripping dates across calendar systems.

Temporal adds immutable date/time types, explicit timezone handling, support for a variety of international calendars, and nanosecond precision. It ships with around 4,500 test262 tests — Date, for comparison, has 594. Firefox v139, Chrome v144, Edge v144, and TypeScript 6.0 beta already include it. If none of these are available, you may also use Temporal from a polyfill, including the reference polyfill developed by the champions initially.

Back when Temporal reached Stage 3 in 2021, we recorded an Igalia Chat on the proposal with Brian Kardell, Philip Chimento, Maggie Johnson-Pint (Moment.js), and Philipp Dunkel (Bloomberg). A lot has changed since then — and we just sat down together with Philip, Nicolò Ribaudo, and Bloomberg’s Jason Williams to talk about the Stage 4 advancement!

Congratulations to everyone who kept this moving. It took nine years and a lot of people, and hopefully will improve the lives of JavaScript developers. We’re looking forward to seeing more robust date handling deployed on the Web and beyond!