Temporal.PlainYearMonth.prototype.subtract()

可用性有限

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

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

Temporal.PlainYearMonth 实例的 subtract() 方法返回一个新的 Temporal.PlainYearMonth 对象,该对象表示通过给定持续时间(形式上可被 Temporal.Duration.from() 转换)向前移动后的年份和月份。

如果您想减去两个年份和月份以获得一个持续时间,请改用 since()until()

语法

js
subtract(duration)
subtract(duration, options)

参数

duration

表示要从该年份和月份中减去的持续时间的字符串、对象或 Temporal.Duration 实例。它使用与 Temporal.Duration.from() 相同的算法将其转换为 Temporal.Duration 对象。

options 可选

包含以下属性的对象

overflow 可选

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

"constrain"(默认)

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

"reject"

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

返回值

一个代表原始 PlainYearMonth 指定的年份和月份减去该持续时间后的新 Temporal.PlainYearMonth 对象。

异常

RangeError

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

描述

减去持续时间等同于添加相反数,因此所有考虑因素都适用。减去正持续时间会从年份和月份的末尾开始向前移动,因此小于该月份长度的任何增量都会被忽略。

示例

减去一个持续时间

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

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

规范

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

浏览器兼容性

另见