Temporal.PlainDate.prototype.dayOfWeek
Базовый уровень Ограниченная доступность
Эта функция не является базовой, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Свойство-акцессор dayOfWeek экземпляров Temporal.PlainDate возвращает положительное целое число, представляющее 1-основанный индекс дня недели для этой даты. Дни недели нумеруются последовательно от 1 до daysInWeek, причем каждое число соответствует своему названию. Оно зависит от календаря. 1 обычно представляет понедельник в календаре, даже если локали, использующие календарь, могут считать другой день первым днем недели (см. Intl.Locale.prototype.getWeekInfo()).
Все обычно поддерживаемые календари используют 7-дневные недели, и в целом можно ожидать, что это свойство вернет одно и то же значение для одной и той же даты в разных календарях.
Акцессор-сеттер dayOfWeek — это undefined. Вы не можете изменить это свойство напрямую. Чтобы создать новый объект Temporal.PlainDate с желаемым новым значением dayOfWeek, используйте метод add() или subtract() с соответствующим количеством days.
Примеры
Использование dayOfWeek
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 для соответствующей корректировки даты. Например, чтобы перейти на пятницу этой недели (независимо от того, до или после):
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
Чтобы перейти к следующей пятнице:
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
Чтобы перейти к предыдущей пятнице:
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
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
dayOfWeek |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
Смотрите также
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
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/dayOfWeek