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

浏览器兼容性

另见