Temporal
Provides standard objects and functions for working with dates and times.
NOTE: The Polyfill, specification text and documentation are under continuing development and should be understood to be unstable.
Champions
- Maggie Pint (@maggiepint)
- Philipp Dunkel (@pipobscure)
- Matt Johnson (@mj1856)
- Brian Terlson (@bterlson)
- Shane Carr (@sffc)
- Ujjwal Sharma (@ryzokuken)
- Philip Chimento (@ptomato)
- Jason Williams (@jasonwilliams)
- Justin Grant (@justingrant)
Status
This proposal is currently Stage 2.
At the time of writing, all the major design decisions that we are aware of have been made, but some are not yet reflected in the API documentation, polyfill, and specification text. These are expected to be ready for TC39 delegates to review within the next few weeks, in preparation for Stage 3. After that point, the bar for making changes will become higher.
Stage 3 Reviewers:
- Richard Gibson
- Bradley Farias
- Daniel Ehrenberg
Overview / Motivation
Date
has been a long-standing pain point in ECMAScript.
This proposes Temporal
, a global Object
that acts as a top-level namespace (like Math
), that brings a modern date/time API to the ECMAScript language.
For a detailed breakdown of motivations, see:
Fixing JavaScript Date
Principles:
- All Temporal objects are immutable.
- Date values can be represented in local calendar systems, but they should be convertable to and from the Proleptic Gregorian Calendar.
- All time-of-day values are based on a standard 24-hour clock.
- Leap seconds are not represented.
Specification Text
The specification text can be found here.
Polyfill
A complete polyfill can be found here. When viewing the reference documentation, the polyfill is automatically loaded in your browser, so you can try it out by opening your browser's developer tools.
NOTE: We encourage you to experiment with the polyfill, but don't use it in production! The API will change before the proposal reaches Stage 3, based on feedback that we receive during this time. Please give us your feedback in the issue tracker and by taking the survey. More info: https://blogs.igalia.com/compilers/2020/06/23/dates-and-times-in-javascript/
Documentation
Reference documentation and examples can be found here.
A cookbook to help you get started and learn the ins and outs of Temporal is available here