Temporal.ZonedDateTime.prototype.hour

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

Temporal.ZonedDateTime 例項的 hour 訪問器屬性返回一個從 0 到 23 的整數,表示此時間的小時部分。

hour 的設定器為 undefined。你不能直接更改此屬性。使用 with() 方法建立一個新的 Temporal.ZonedDateTime 物件,其中包含所需的新值。

有關一般資訊和更多示例,請參閱 Temporal.PlainTime.prototype.hour

對於 ZonedDateTime,由於夏令時轉換等偏移量變化,hour 可能是非連續的。在這種情況下,小時可能會重複或跳過。

示例

使用 hour

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:34:56.123456789-04:00[America/New_York]",
);
console.log(dt.hour); // 12

非連續小時

由於夏令時轉換,非連續小時非常常見,這在從本地時間到 UTC 時間的模糊性和間隔中解釋得更多。

js
const dt = Temporal.ZonedDateTime.from(
  "2024-11-03T01:59:00-04:00[America/New_York]",
);
console.log(dt.hour); // 1
const dt2 = dt.add({ minutes: 1 });
console.log(dt2.hour); // 1
console.log(dt2.toString()); // 2024-11-03T01:00:00-05:00[America/New_York]

const dt3 = Temporal.ZonedDateTime.from(
  "2024-03-10T01:59:00-05:00[America/New_York]",
);
console.log(dt3.hour); // 1
const dt4 = dt3.add({ minutes: 1 });
console.log(dt4.hour); // 3
console.log(dt4.toString()); // 2024-03-10T03:00:00-04:00[America/New_York]

因此,您應始終優先使用 add()subtract() 來操作日期和時間,而不是直接更改 hour 屬性。

規範

規範
Temporal
# sec-get-temporal.zoneddatetime.prototype.hour

瀏覽器相容性

另見