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.PlainDate
Temporal.PlainDate.prototype.with()
Temporal.PlainDate.prototype.add()
Temporal.PlainDate.prototype.subtract()
Temporal.PlainDate.prototype.day
Temporal.PlainDate.prototype.dayOfYear
Temporal.PlainDate.prototype.daysInWeek
Temporal.PlainDate.prototype.weekOfYear
Temporal.PlainDate.prototype.yearOfWeek