Temporal.PlainDate.prototype.day

可用性有限

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

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

day 訪問器屬性是 Temporal.PlainDate 例項的屬性,用於返回一個表示此日期所在月份的 1 基日期索引的正整數。這與日曆上顯示的日期編號相同。它依賴於日曆

它通常從 1 開始並且是連續的,但並非總是如此。如果您想遍歷月份中的所有日期,請先使用帶有 { day: 1 }with() 方法(這將設定為月份的開始,即使實際數字不是 1),然後重複使用帶有 { days: 1 }add() 方法,直到月份發生變化。

注意: 通常,日期索引僅在從一個日曆系統過渡到另一個日曆系統時才會改變,例如從儒略曆到格里高利曆。實際上,所有當前內建的日曆都是外推的,這意味著日曆系統被無限地擴充套件到過去和未來。假定 day 是非連續的,可以防止未來引入非外推日曆。

day 的設定訪問器是 undefined。您不能直接更改此屬性。請使用 with() 方法建立一個新的 Temporal.PlainDate 物件,並帶有您想要的新值。

示例

使用 day

js
const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.day); // 1

const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.day); // 22; it is May 22 in the Chinese calendar

遍歷月份中的所有日期

js
const month = Temporal.PlainDate.from("2021-07-14"); // An arbitrary date in the month
for (
  let day = month.with({ day: 1 });
  day.month === month.month;
  day = day.add({ days: 1 })
) {
  console.log(day.day);
}

更改日期

js
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.with({ day: 15 });
console.log(newDate.toString()); // 2021-07-15

您還可以使用 add()subtract() 方法,從當前日期開始移動指定的日數。

js
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.add({ days: 14 });
console.log(newDate.toString()); // 2021-07-15

預設情況下,with() 會將日期約束在有效值的範圍內。因此,您可以使用 { day: 1 } 將日期設定為月份的第一天,即使第一天不是數字 1。同樣,以下程式碼會將日期設定為月份的最後一天:

js
const date = Temporal.PlainDate.from("2021-07-01");
const lastDay = date.with({ day: Number.MAX_VALUE }); // 2021-07-31

注意: 避免使用 daysInMonth 來設定月份的最後一天。在罕見的月份跳過幾天的imerick情況下,月份的最後一天並不總是與該月份的總天數相同。

規範

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

瀏覽器相容性

另見