Temporal.PlainTime.from()
Temporal.PlainTime.from()
静态方法可以从另一个 Temporal.PlainTime
对象、一个包含时间属性的对象或一个 RFC 9557 字符串创建一个新的 Temporal.PlainTime
对象。
语法
js
Temporal.PlainTime.from(info)
Temporal.PlainTime.from(info, options)
参数
info
-
以下之一:
-
一个
Temporal.PlainTime
实例,它会创建该实例的一个副本。 -
一个
Temporal.PlainDateTime
实例,它以与Temporal.PlainDateTime.prototype.toPlainTime()
相同的方式提供时间。 -
一个
Temporal.ZonedDateTime
实例,它以与Temporal.ZonedDateTime.prototype.toPlainTime()
相同的方式提供时间。 -
一个包含时间的 RFC 9557 字符串。
-
一个包含以下至少一个属性的对象(按检索和验证的顺序)
它们被截断为整数。超出范围的值由
overflow
选项处理。
-
options
可选-
包含以下属性的对象
overflow
可选-
一个字符串,指定当时间组件超出范围时的行为(当使用对象
info
时)。可能的值是"constrain"
(默认)-
时间组件被限制在有效范围内。
"reject"
-
如果时间组件超出范围,则抛出
RangeError
。
返回值
一个新的 Temporal.PlainTime
对象,表示 info
指定的时间。
异常
TypeError
-
在以下情况之一中抛出
info
不是一个至少包含一个可识别属性的对象,也不是一个字符串。options
不是对象或undefined
。
RangeError
-
如果提供的数值属性超出范围,并且
options.overflow
设置为"reject"
,则抛出。
示例
从对象创建 PlainTime
js
const t1 = Temporal.PlainTime.from({ hour: 0 });
console.log(t1.toString()); // "00:00:00"
const t2 = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56 });
console.log(t2.toString()); // "12:34:56"
const t3 = Temporal.PlainTime.from({
hour: 12,
minute: 34,
second: 56,
millisecond: 123,
microsecond: 456,
nanosecond: 789,
});
console.log(t3.toString()); // "12:34:56.123456789"
控制溢出行为
默认情况下,超出范围的值会被限制在有效范围内
js
const t1 = Temporal.PlainTime.from({ hour: 25 });
console.log(t1.toString()); // "23:00:00"
const t2 = Temporal.PlainTime.from({ hour: 25, minute: 60 });
console.log(t2.toString()); // "23:59:00"
你可以将此行为更改为抛出错误
js
Temporal.PlainTime.from({ hour: 25 }, { overflow: "reject" });
// RangeError: time value "hour" not in 0..23: 25
从字符串创建 PlainTime
js
const t1 = Temporal.PlainTime.from("12:34:56.123456789");
console.log(t1.toLocaleString("en-US", { timeStyle: "full" }));
// 12:34:56 PM
从另一个 Temporal 实例创建 PlainTime
js
const dt = Temporal.PlainDateTime.from("2021-07-01T12:00");
const t = Temporal.PlainTime.from(dt);
console.log(t.toString()); // "12:00:00"
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T00:00+08:00[Asia/Shanghai]",
);
const t2 = Temporal.PlainTime.from(zdt);
console.log(t2.toString()); // "00:00:00"
const t3 = Temporal.PlainTime.from(t);
console.log(t3.toString()); // "12:00:00"
规范
规范 |
---|
Temporal # sec-temporal.plaintime.from |
浏览器兼容性
加载中…