Temporal.PlainDate.prototype.subtract()

可用性有限

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

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

Temporal.PlainDate 实例的 subtract() 方法会返回一个新的 Temporal.PlainDate 对象,表示当前日期向后推移指定时长(可通过 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.PlainDate 对象,表示原始 PlainDate 指定的日期减去时长后的日期。

描述

减去一个时长等同于添加相反数,因此所有相同的注意事项都适用。

异常

RangeError

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

示例

减去一个持续时间

js
const start = Temporal.PlainDate.from("2022-01-01");
const end = start.subtract({ years: 1, months: 2, weeks: 3, days: 4 });
console.log(end.toString()); // 2020-10-07

有关更多示例,请参阅 add()

规范

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

浏览器兼容性

另见