Temporal.PlainDate.prototype.dayOfWeek
dayOfWeek 訪問器屬性,屬於 Temporal.PlainDate 例項,返回一個正整數,表示此日期在一週中的基於 1 的索引。一週中的天數按順序從 1 編號到 daysInWeek,每個數字都對映到其名稱。它依賴於 日曆。1 通常表示日曆中的星期一,即使使用該日曆的區域設定可能認為不同的日期是星期中的第一天(請參閱 Intl.Locale.prototype.getWeekInfo())。
所有常用支援的日曆都使用 7 天的周,並且通常可以預期此屬性在不同日曆上對同一日期返回相同的值。
dayOfWeek 的 setter 訪問器為 undefined。您不能直接修改此屬性。要建立一個具有所需新 dayOfWeek 值的 Temporal.PlainDate 物件,請使用 add() 或 subtract() 方法並提供適當的 days 值。
示例
使用 dayOfWeek
js
const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfWeek); // 4; Thursday
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfWeek); // 4
更改 dayOfWeek
PlainDate 不支援直接更改 dayOfWeek。要更改星期幾,您需要先計算出與您想要的星期幾之間的天數差,然後使用 add 或 subtract 來相應地調整日期。例如,要更改為本週的星期五(無論是在之前還是之後)
js
function getDayInSameWeek(date, destDayOfWeek) {
return date.add({ days: destDayOfWeek - date.dayOfWeek });
}
console.log(
getDayInSameWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-07-02
console.log(
getDayInSameWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-02
更改為下一個星期五
js
function getNextDayInWeek(date, destDayOfWeek) {
const distance = destDayOfWeek - date.dayOfWeek;
return date.add({
days: distance < 0 ? date.daysInWeek + distance : distance,
});
}
console.log(
getNextDayInWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-07-02
console.log(
getNextDayInWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-09
更改為上一個星期五
js
function getPreviousDayInWeek(date, destDayOfWeek) {
const distance = date.dayOfWeek - destDayOfWeek;
return date.subtract({
days: distance < 0 ? date.daysInWeek + distance : distance,
});
}
console.log(
getPreviousDayInWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-06-25
console.log(
getPreviousDayInWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-02
規範
| 規範 |
|---|
| Temporal # sec-get-temporal.plaindate.prototype.dayofweek |
瀏覽器相容性
載入中…
另見
Temporal.PlainDateTemporal.PlainDate.prototype.with()Temporal.PlainDate.prototype.add()Temporal.PlainDate.prototype.subtract()Temporal.PlainDate.prototype.dayTemporal.PlainDate.prototype.dayOfYearTemporal.PlainDate.prototype.daysInWeekTemporal.PlainDate.prototype.weekOfYearTemporal.PlainDate.prototype.yearOfWeek