Temporal.PlainDate.prototype.day
Базовый уровень Ограниченная доступность
Эта функция не является Базовой, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Свойство-аксессор day экземпляров Temporal.PlainDate возвращает положительное целое число, представляющее 1-индексированный номер дня в месяце для этой даты, который является тем же номером дня, который вы видите в календаре. Оно зависит от календаря.
Обычно он начинается с 1 и является непрерывным, но не всегда. Если вы хотите перебрать все дни в месяце, сначала используйте with() с { day: 1 } (что устанавливает дату на начало месяца, даже если фактическое число не равно 1), затем многократно используйте add() с { days: 1 }, пока месяц не изменится.
Примечание: Обычно индекс дня меняется только при переходе из одной календарной системы в другую, например, с юлианского на григорианский календарь. На практике все встроенные в настоящее время календари являются пролептическими, что означает, что календарная система расширяется на неопределенное время в прошлое и будущее. Предположение о том, что day является не-непрерывным (non-continuous), защищает от будущего введения непролептических календарей.
Сеттер свойства day — это undefined. Вы не можете изменить это свойство напрямую. Используйте метод with(), чтобы создать новый объект Temporal.PlainDate с требуемым новым значением.
Примеры
Использование day
const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.day); // 1
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.day); // 22; it is May 22 in the Chinese calendar
Перебор всех дней в месяце
const month = Temporal.PlainDate.from("2021-07-14"); // An arbitrary date in the month
for (
let day = month.with({ day: 1 });
day.month === month.month;
day = day.add({ days: 1 })
) {
console.log(day.day);
}
Изменение дня
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.with({ day: 15 });
console.log(newDate.toString()); // 2021-07-15
Вы также можете использовать add() или subtract() для смещения на определенное количество дней относительно текущей даты.
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.add({ days: 14 });
console.log(newDate.toString()); // 2021-07-15
По умолчанию with() ограничивает день диапазоном допустимых значений. Таким образом, вы можете использовать { day: 1 }, чтобы установить день как первый день месяца, даже если первый день не имеет номера 1. Аналогично, следующий код установит день как последний день месяца:
const date = Temporal.PlainDate.from("2021-07-01");
const lastDay = date.with({ day: Number.MAX_VALUE }); // 2021-07-31
Примечание: Избегайте использования daysInMonth для установки дня в качестве последнего дня месяца. Последний день месяца не всегда совпадает с количеством дней в месяце в редких случаях, когда в месяце может быть пропущено несколько дней.
Спецификации
| Спецификация |
|---|
| Temporal # sec-get-temporal.plaindate.prototype.day |
Совместимость с браузерами
| Настольные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
day |
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.yearTemporal.PlainDate.prototype.monthTemporal.PlainDate.prototype.daysInMonthTemporal.PlainDate.prototype.dayOfWeekTemporal.PlainDate.prototype.dayOfYear
© 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/day