Temporal.PlainDateTime.prototype.until()

可用性有限

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

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

until() 方法是 Temporal.PlainDateTime 实例的一个方法,它返回一个新的 Temporal.Duration 对象,表示从当前日期时间到另一个日期时间(可通过 Temporal.PlainDateTime.from() 转换)的持续时间。如果另一个日期时间在当前日期时间之后,则持续时间为正;如果在此日期时间之前,则为负。

此方法执行 other - this。要执行 this - other,请使用 since() 方法。

语法

js
until(other)
until(other, options)

参数

其他

一个字符串、一个对象或一个 Temporal.PlainDateTime 实例,表示要从中减去当前日期时间的日期时间。它使用与 Temporal.PlainDateTime.from() 相同的算法转换为 Temporal.PlainDateTime 对象。它必须与 this 具有相同的日历。

options 可选

since() 相同的选项。

返回值

一个新 Temporal.Duration 对象,表示从当前日期时间直到 other 的持续时间。如果 other 在当前日期时间之后,则持续时间为正;如果在此日期时间之前,则为负。

异常

RangeError

在以下情况之一中抛出

  • other 的日历与 this 不同。
  • 任何选项无效。

示例

使用 until()

js
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`);

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

规范

规范
Temporal
# sec-temporal.plaindatetime.prototype.until

浏览器兼容性

另见