Temporal.Duration.from()
Temporal.Duration.from()
静态方法可从另一个 Temporal.Duration
对象、一个具有时段属性的对象或一个 ISO 8601 字符串创建新的 Temporal.Duration
对象。
语法
js
Temporal.Duration.from(info)
参数
info
-
以下之一:
-
一个
Temporal.Duration
实例,用于创建该实例的副本。 -
一个表示时段的 ISO 8601 字符串。
-
一个包含以下至少一个属性的对象(按检索和验证顺序排列)
每个属性应包含一个整数值。生成时段不得具有混合符号,因此所有这些属性必须具有相同的符号(或为零)。缺失的属性被视为零。
-
返回值
一个可能不平衡的新 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 |
浏览器兼容性
加载中…