Spec-Zone.ru › JavaScript

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.PlainDate
  • Temporal.PlainDate.prototype.with()
  • Temporal.PlainDate.prototype.add()
  • Temporal.PlainDate.prototype.subtract()
  • Temporal.PlainDate.prototype.year
  • Temporal.PlainDate.prototype.month
  • Temporal.PlainDate.prototype.daysInMonth
  • Temporal.PlainDate.prototype.dayOfWeek
  • Temporal.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API