whatisgithub

What is proposal-temporal?

tc39/proposal-temporal — explained in plain English

Analysis updated 2026-07-03

3,693HTMLAudience · developerComplexity · 2/5Setup · easy

In one sentence

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.

Mindmap

mindmap
  root((Temporal))
    What it does
      Modern date time API
      Replaces Date object
      TC39 standard
    Types
      PlainDate
      ZonedDateTime
      Duration
      Instant
    Features
      Immutable values
      Time zone handling
      Calendar support
    Status
      Ships in Firefox 139
      Chrome 144 support
      Node.js 26 support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace error-prone Date usage in a JavaScript app with Temporal types that handle time zones and calendar math correctly.

USE CASE 2

Handle scheduling logic using Temporal.ZonedDateTime without manual offset math or third-party date libraries.

USE CASE 3

Perform calendar arithmetic with Temporal.Duration to add or subtract days, months, and hours without off-by-one bugs.

USE CASE 4

Start using Temporal today in Firefox 139+, Chrome 144+, or Node.js 26+ with no libraries to install.

What is it built with?

JavaScriptHTMLNode.js

How does it compare?

tc39/proposal-temporalmciastek/saltwitter/scala_school
Stars3,6933,6923,696
LanguageHTMLHTMLHTML
Setup difficultyeasyeasyeasy
Complexity2/51/51/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Available natively in Firefox 139+, Chrome 144+, and Node.js 26+, community polyfills available for older targets.

So what is it?

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.

Copy-paste prompts

Prompt 1
Rewrite my JavaScript date manipulation code using Temporal.PlainDate and Temporal.Duration instead of the Date object.
Prompt 2
How do I convert a Temporal.Instant to a specific time zone and format it for display using the JavaScript Temporal API?
Prompt 3
Show me how to calculate the number of days between two dates using the Temporal API in modern JavaScript.
Prompt 4
What is the difference between Temporal.PlainDate, Temporal.ZonedDateTime, and Temporal.Instant, and when should I use each one?
Prompt 5
How do I use a polyfill to run the Temporal API in browsers that have not yet shipped it natively?

Frequently asked questions

What is proposal-temporal?

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.

What language is proposal-temporal written in?

Mainly HTML. The stack also includes JavaScript, HTML, Node.js.

How hard is proposal-temporal to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is proposal-temporal for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.