ZonedDateTime until()
Example
const start = Temporal.PlainDateTime.from("2026-05-16T14:30:00");
const end = Temporal.PlainDateTime.from("2026-05-17T14:30:00");
const duration = end.until(start, {smallestUnit:"days"});
Try it Yourself »
Description
The until() method returns a Temporal.Duration object representing
the duration from this ZonedDateTime until another ZonedDateTime.
The until() method does not change the original ZonedDateTime object.
Syntax
zoneddatetime.until(other, option)
Parameters
| Parameter | Description |
| other | Another ZonedDateTime. |
| option | Any valid Temporal.Duration.round() option. |
Return Value
| Type | Description |
| Object | A Temporal.Duration object representing the duration until the other date. |
Browser Support
Temporal is a major update to the JavaScript standard (TC39).
It is currently supported in Chrome, Edge, Firefox, and Opera Safari has not shipped it yet.
| Chrome 144 |
Edge 144 |
Firefox 139 |
Safari |
Opera 128 |
| Jan 2026 | Jan 2026 | May 2025 | 🚫 | Feb 2026 |
The Safari implementation can be tested in Safari Technology Preview by enabling the --use-temporal runtime flag.
Polyfill
Until Safari supports Temporal natively, you can use the official polyfill:
<script
src="https://cdn.jsdelivr.net/npm/@js-temporal/polyfill@0.5.1/dist/index.umd.js">
</script>