Temporal.Duration.from()

可用性有限

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

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

Temporal.Duration.from() 静态方法可从另一个 Temporal.Duration 对象、一个具有时段属性的对象或一个 ISO 8601 字符串创建新的 Temporal.Duration 对象。

语法

js
Temporal.Duration.from(info)

参数

info

以下之一:

返回值

一个可能不平衡的新 Temporal.Duration 对象,具有指定的组成部分。

异常

RangeError

在以下情况之一中抛出

  • info 对象中任何可识别的属性不是整数(包括非有限值)。
  • 日历单位(年、月、周)的绝对值 ≥ 232
  • 持续时间的非日历部分(天及以下),以秒为单位表示时,其绝对值 ≥ 253
TypeError

在以下情况之一中抛出

  • info 不是对象或字符串。
  • info 对象中所有可识别的属性都为 undefined

示例

从对象创建时段

js
const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
console.log(d1.toString()); // "PT1H30M"

const d2 = Temporal.Duration.from({ months: 1, days: 2 });
console.log(d2.toString()); // "P1M2D"

// Uncommon because unbalanced, but valid
const unbalanced = Temporal.Duration.from({
  hours: 100,
  minutes: 100,
  seconds: 100,
});
console.log(unbalanced.toString()); // "PT100H100M100S"

const neg = Temporal.Duration.from({ hours: -1, minutes: -30 });
console.log(neg.toString()); // "-PT1H30M"

从字符串创建时段

js
const d = Temporal.Duration.from("P1Y2M3W4DT5H6M7.00800901S");
console.log(d.hours); // 5

从另一个时段创建时段

js
const d1 = Temporal.Duration.from({ hours: 1, minutes: 30 });
const d2 = Temporal.Duration.from(d1);
console.log(d2.toString()); // "PT1H30M"

规范

规范
Temporal
# sec-temporal.duration.from

浏览器兼容性

另见