proposal-temporal
Provides standard objects and functions for working with dates and times.
JavaScript has had a date and time problem for decades. The built-in Date object, inherited from Java in the mid-1990s, is notoriously confusing: months are numbered starting from zero, time zone handling is inconsistent, and objects are mutable in ways that cause unexpected bugs. This repository holds the official proposal that fixes all of that, introducing a new set of tools called Temporal to the JavaScript language standard.
Temporal is not a third-party library you install. It is a new global object being added to JavaScript itself, approved and finalized by TC39, the committee that governs the JavaScript standard. As of 2025 and 2026, it has already shipped in Firefox 139, Chrome 144, and Node.js 26, meaning developers on modern browsers or recent versions of Node can use it without any additional setup.
The core idea is straightforward: instead of one overloaded Date object that tries to handle everything, Temporal provides distinct types for each concept. There are types for a date without a time, a time without a date, a date and time combined, a moment in time with full time-zone awareness, and a duration such as three hours and twenty minutes. All of these types are immutable, so once you create one, its value cannot be changed accidentally elsewhere in the code.
The repository contains the specification text, full reference documentation in English, Japanese, and Chinese, a cookbook of practical examples, and a non-production polyfill used for testing and documentation demos. If you want to use Temporal in a project today on browsers that have not yet shipped it, the README points to three community-maintained polyfills that are suitable for production use.