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 |
瀏覽器相容性
載入中…