tc39/proposal-temporal — explained in plain English
Analysis updated 2026-07-03
Replace error-prone Date usage in a JavaScript app with Temporal types that handle time zones and calendar math correctly.
Handle scheduling logic using Temporal.ZonedDateTime without manual offset math or third-party date libraries.
Perform calendar arithmetic with Temporal.Duration to add or subtract days, months, and hours without off-by-one bugs.
Start using Temporal today in Firefox 139+, Chrome 144+, or Node.js 26+ with no libraries to install.
| tc39/proposal-temporal | mciastek/sal | twitter/scala_school | |
|---|---|---|---|
| Stars | 3,693 | 3,692 | 3,696 |
| Language | HTML | HTML | HTML |
| Setup difficulty | easy | easy | easy |
| Complexity | 2/5 | 1/5 | 1/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Available natively in Firefox 139+, Chrome 144+, and Node.js 26+, community polyfills available for older targets.
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.
The official TC39 proposal that adds a modern, immutable date and time system to JavaScript, replacing the broken Date object with distinct types for dates, times, time zones, and durations.
Mainly HTML. The stack also includes JavaScript, HTML, Node.js.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.