Temporal.PlainDateTime.prototype.until()
Baseline Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
The until() method of Temporal.PlainDateTime instances returns a new Temporal.Duration object representing the duration from this date-time to another date-time (in a form convertible by Temporal.PlainDateTime.from()). The duration is positive if the other date-time is after this date-time, and negative if before.
This method does other - this. To do this - other, use the since() method.
Syntax
until(other) until(other, options)
Parameters
-
other - A string, an object, or a
Temporal.PlainDateTimeinstance representing a date-time to subtract this date-time from. It is converted to aTemporal.PlainDateTimeobject using the same algorithm asTemporal.PlainDateTime.from(). It must have the same calendar asthis. -
optionsOptional - The same options as
since().
Return value
A new Temporal.Duration object representing the duration from this date-time until other. The duration is positive if other is after this date-time, and negative if before.
Exceptions
-
RangeError - Thrown in one of the following cases:
-
otherhas a different calendar thanthis. - Any of the options is invalid.
-
Examples
Using until()
let nextBilling = Temporal.PlainDateTime.from({
year: Temporal.Now.plainDateISO().year,
month: 4,
day: 1,
});
const now = Temporal.Now.plainDateTimeISO().round("second");
if (Temporal.PlainDateTime.compare(nextBilling, now) < 0) {
nextBilling = nextBilling.add({ years: 1 });
}
const duration = now.until(nextBilling);
console.log(`${duration.toLocaleString("en-US")} until next billing`);
For more examples, see since().
Specifications
| Specification |
|---|
| Temporal # sec-temporal.plaindatetime.prototype.until |
Browser compatibility
| 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 |
128 |
preview |
144 |
139 |
95 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
See also
Temporal.PlainDateTimeTemporal.DurationTemporal.PlainDateTime.prototype.add()Temporal.PlainDateTime.prototype.subtract()Temporal.PlainDateTime.prototype.since()
© 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/PlainDateTime/until