Temporal.PlainDate.prototype.dayOfYear
dayOfYear 訪問器屬性,屬於 Temporal.PlainDate 例項,返回一個正整數,表示該日期在一年中的基於 1 的索引。一年的第一天是 1,最後一天是 daysInYear。它取決於 日曆。
dayOfYear 的 set 訪問器是 undefined。您不能直接更改此屬性。要建立具有所需新 dayOfYear 值的新 Temporal.PlainDate 物件,請使用 add() 或 subtract() 方法,並指定適當的 days 數量。
示例
使用 dayOfYear
js
const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfYear); // 182
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfYear); // 140
const date3 = Temporal.PlainDate.from("2020-07-01");
console.log(date3.dayOfYear); // 183; 2020 is a leap year
更改 dayOfYear
PlainDate 不支援直接更改 dayOfYear。要更改一年中的第幾天,您需要先計算出與您期望的年內天數之間的天數差,然後使用 add 或 subtract 來相應地調整日期。例如,要更改為今年的第 100 天(無論是在之前還是之後)
js
function getDayInSameYear(date, destDayOfYear) {
return date.add({ days: destDayOfYear - date.dayOfYear });
}
console.log(
getDayInSameYear(Temporal.PlainDate.from("2021-07-01"), 100).toString(),
); // 2021-04-10
console.log(
getDayInSameYear(Temporal.PlainDate.from("2021-01-01"), 100).toString(),
); // 2021-04-10
console.log(
getDayInSameYear(Temporal.PlainDate.from("2020-01-01"), 100).toString(),
); // 2020-04-09
預設情況下,with() 會將日期限制在有效值的範圍內。因此,您始終可以使用 { month: 1, day: 1 } 將日期設定為該年的第一天,即使第一天不是數字 1。類似地,以下程式碼會將日期設定為該年的最後一天,而不管最後一個月或年份有多少天。
js
const date = Temporal.PlainDate.from("2021-07-01");
const lastDay = date.with({ month: Number.MAX_VALUE, day: Number.MAX_VALUE }); // 2021-12-31
規範
| 規範 |
|---|
| Temporal # sec-get-temporal.plaindate.prototype.dayofyear |
瀏覽器相容性
載入中…