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

瀏覽器相容性

另見