This feature is not Baseline because it does not work in some of the most widely-used browsers.
The subtract() method of Temporal.ZonedDateTime instances returns a new Temporal.ZonedDateTime object representing this date-time moved backward by a given duration (in a form convertible by Temporal.Duration.from()).
If you want to subtract two date-times and get a duration, use since() or until() instead.
subtract(duration) subtract(duration, options)
durationA string, an object, or a Temporal.Duration instance representing a duration to subtract from this date-time. It is converted to a Temporal.Duration object using the same algorithm as Temporal.Duration.from().
options OptionalAn object containing the following property:
overflow OptionalA string specifying the behavior when a date component is out of range. Possible values are:
"constrain" (default)The date component is clamped to the valid range.
"reject"A RangeError is thrown if the date component is out of range.
A new Temporal.ZonedDateTime object representing the date-time specified by the original ZonedDateTime, minus the duration.
RangeErrorThrown if the result is not in the representable range, which is ±108 days, or about ±273,972.6 years, from the Unix epoch.
Subtracting a duration is equivalent to adding its negation, so all the same considerations apply.
const start = Temporal.ZonedDateTime.from(
"2021-01-01T12:34:56-05:00[America/New_York]",
);
const end = start.subtract({
years: 1,
months: 2,
weeks: 3,
days: 4,
hours: 5,
minutes: 6,
seconds: 7,
milliseconds: 8,
});
console.log(end.toString()); // 2019-10-07T07:28:48.992-04:00[America/New_York]
| 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 | |
subtract |
144 | 144 | 139 | No | No | 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/ZonedDateTime/subtract