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 |
瀏覽器相容性
載入中…
另見
Temporal.PlainDateTemporal.PlainDate.prototype.with()Temporal.PlainDate.prototype.add()Temporal.PlainDate.prototype.subtract()Temporal.PlainDate.prototype.yearTemporal.PlainDate.prototype.monthTemporal.PlainDate.prototype.daysInMonthTemporal.PlainDate.prototype.dayOfWeekTemporal.PlainDate.prototype.dayOfYear