Temporal.ZonedDateTime.prototype.subtract()

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

Temporal.ZonedDateTime 实例的 subtract() 方法返回一个新的 Temporal.ZonedDateTime 对象,表示此日期时间按照给定持续时间(以可由 Temporal.Duration.from() 转换的形式)向后移动。

如果你想减去两个日期时间并获得一个持续时间,请改用 since()until()

语法

js
subtract(duration)
subtract(duration, options)

参数

duration

一个字符串、一个对象或一个 Temporal.Duration 实例,表示要从此日期时间中减去的持续时间。它使用与 Temporal.Duration.from() 相同的算法转换为 Temporal.Duration 对象。

options 可选

包含以下属性的对象

overflow 可选

一个字符串,指定日期组件超出范围时的行为。可能的值是

"constrain"(默认)

日期组件被限制在有效范围内。

"reject"

如果日期组件超出范围,则抛出 RangeError

返回值

一个新的 Temporal.ZonedDateTime 对象,表示原始 ZonedDateTime 指定的日期时间减去持续时间后的结果。

异常

RangeError

如果结果不在 可表示范围 内,即距 Unix 纪元 ±108 天(约 ±273,972.6 年),则抛出此错误。

描述

减去一个持续时间等同于 添加负值,因此所有相同的注意事项都适用。

示例

减去一个持续时间

js
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]

规范

规范
Temporal
# sec-temporal.zoneddatetime.prototype.subtract

浏览器兼容性

另见