Temporal.PlainTime.from()

可用性有限

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

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

Temporal.PlainTime.from() 静态方法可以从另一个 Temporal.PlainTime 对象、一个包含时间属性的对象或一个 RFC 9557 字符串创建一个新的 Temporal.PlainTime 对象。

语法

js
Temporal.PlainTime.from(info)
Temporal.PlainTime.from(info, options)

参数

info

以下之一:

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

浏览器兼容性

另见