This feature is not Baseline because it does not work in some of the most widely-used browsers.
The until() method of Temporal.PlainTime instances returns a new Temporal.Duration object representing the duration from this time to another time (in a form convertible by Temporal.PlainTime.from()). The duration is positive if the other time is after this time, and negative if before.
This method does other - this. To do this - other, use the since() method.
until(other) until(other, options)
otherA string, an object, or a Temporal.PlainTime instance representing a time to subtract this time from. It is converted to a Temporal.PlainTime object using the same algorithm as Temporal.PlainTime.from(). It must have the same calendar as this.
options OptionalThe same options as since().
A new Temporal.Duration object representing the duration from this time until other. The duration is positive if other is after this time, and negative if before.
RangeErrorThrown if any of the options is invalid.
const lunchTime = Temporal.PlainTime.from("12:30:00");
const now = Temporal.Now.plainTimeISO();
const duration = now.until(lunchTime);
console.log(`It will be ${duration.toLocaleString("en-US")} until lunch`);
// Example output: "It will be 3 hr, 42 min, 21 sec, 343 ms, 131 μs, 718 ns until lunch"
For more examples, see since().
| Specification |
|---|
| Temporal> # sec-temporal.plaintime.prototype.until> |
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
until |
144 | 144 | 139 | No | preview | 144 | 139 | No | No | No | 144 | No | ? | 1.40 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/until