JavaScript Temporal Duration
Temporal.Duration Object Reference
Revised March 2026
Temporal.Duration Methods
| Method | Description |
|---|---|
| compare() | Comparing two times (returning -1, 0, or 1) |
| from() | Returns a new duration from another object or a string |
| with() | Returns a new duration with specified fields modified |
| Arithmetic | |
| abs() | Returns a new duration with the absolute value of a duration |
| add() | Returns a new duration with a duration added |
| negated() | Returns a new duration with a duration negated |
| round() | Returns a new duration with a duration rounded |
| subtract() | Returns a new duration with a duration subtracted |
| Formatting | |
| total() | Returns a number representing the duration in a given unit |
| toJSON() | Returns an RFC 9557 format string for JSON serialization |
| toLocaleString() | Returns a language-sensitive representation of the time |
| toString() | Returns an RFC 9557 format string representation |
| valueOf() | Throws a TypeError (prevents temporals from being converted to primitives) |
Temporal.Duration Properties
The Temporal.Duration object has 12 properties of time information.
| Property | Description |
|---|---|
| blank | Boolean true if the duration represents a zero duration |
| days | Days as an integer (1-31) |
| hours | Hours as an integer (0-23 |
| microseconds | Microseconds as an integer (0-999) |
| milliseconds | Milliseconds as an integer (0-999) |
| minutes | Minutes as an integer (0-59) |
| months | Months as an integer (1-12) |
| nanoseconds | Nanoseconds as an integer (0-999) |
| seconds | Seconds as an integer (0-59) |
| sign | 1 positive -1 negative |
| weeks | Weeks as an integer |
| years | Years as an integer |
Learn More:
Browser Support
Temporal is a major update to the JavaScript standard (TC39).
It is currently fully supported in Chrome, Edge, and Firefox, and is expected to reach full availability across browsers throughout 2026.
| Chrome 144 |
Edge 144 |
Firefox 139 |
Safari |
Opera |
| Jan 2026 | Jan 2026 | May 2025 | 🚫 | 🚫 |
Opera Support
Opera support will probably appear 1-3 browser cycles after Chromium, which often means a few months later.
Safari Support
As of March 2026, Safari has not yet announced a confirmed release date for stable support of the JavaScript Temporal API.
However, the implementation is actively in development and can be tested today in Safari Technology Preview by enabling the --use-temporal runtime flag.
Polyfill
Until Opera and Safari supports Temporal natively, use the official polyfill.
This Polyfill allows Temporal code to run in all browsers today:
Example
<script
src="https://cdn.jsdelivr.net/npm/@js-temporal/polyfill/dist/index.umd.js">
</script>
<script>
// Now you can use Temporal
const today = Temporal.Now.plainDateISO();
</script>