Temporal.ZonedDateTime.prototype.day

可用性有限

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

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

Temporal.ZonedDateTime 例項的 day 訪問器屬性返回一個正整數,表示該日期在月份中的基於 1 的日期索引,與你在日曆上看到的日期數字相同。它取決於日曆

day 的設定器為 undefined。你不能直接更改此屬性。請使用 with() 方法建立一個具有所需新值的新的 Temporal.ZonedDateTime 物件。

有關一般資訊和更多示例,請參見 Temporal.PlainDate.prototype.day

對於 PlainDate,如果日曆跳過天數,day 才會是非連續的。對於 ZonedDateTime,如果時區將其偏移量更改 24 小時,day 也可以是非連續的;這種情況確實發生過。請參見下面的示例。

示例

使用 day

js
const dt = Temporal.ZonedDateTime.from("2021-07-01[America/New_York]"); // ISO 8601 calendar
console.log(dt.day); // 1

非連續的 day

為了更好地與亞洲的貿易伙伴對齊時間,薩摩亞國將其時區更改到國際日期變更線的另一側,將其偏移量從 -10:00 更改為 +14:00(夏令時)。這導致當地時間 abrupt 改變 24 小時,因此完全跳過了 2011 年 12 月 30 日。2011-12-29T23:59:59-10:00[Pacific/Apia] 緊接著是 2011-12-31T00:00:00+14:00[Pacific/Apia]

js
const dt = Temporal.ZonedDateTime.from(
  "2011-12-29T23:59:59-10:00[Pacific/Apia]",
);
console.log(dt.day); // 29
const nextDay = dt.add({ seconds: 1 });
console.log(nextDay.day); // 31

因此,在操作日期和時間時,應始終首選 add()subtract(),而不是直接更改 day 屬性。

規範

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

瀏覽器相容性

另見