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