Spec-Zone.ru › JavaScript

Temporal.PlainDate.prototype.month

Baseline Ограниченная доступность

Эта функция не является Baseline, так как она не работает в некоторых наиболее широко используемых браузерах.

Свойство доступа month экземпляров Temporal.PlainDate возвращает положительное целое число, представляющее 1-индексированный номер месяца в году этой даты. Первый месяц этого года — 1, а последний — monthsInYear. Это зависит от календаря.

Обратите внимание, что, в отличие от Date.prototype.getMonth(), индекс начинается с 1. Если календарь имеет високосные месяцы, то месяц с одинаковым monthCode может иметь разные month индексы для разных лет.

Примечание: Не используйте это свойство для идентификации фактического месяца, включая его название. Для этой цели используйте monthCode. Используйте month только для идентификации месяцев в контексте года или для определения их порядка.

Сеттер month — undefined. Вы не можете изменить это свойство напрямую. Используйте метод with() для создания нового объекта Temporal.PlainDate с желаемым новым значением.

Примеры

Использование month

const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.monthCode); // "M07"
console.log(date.month); // 7

const date2 = Temporal.PlainDate.from("2021-05-01[u-ca=chinese]");
console.log(date2.monthCode); // "M03"
console.log(date2.month); // 3; it is March 20 in the Chinese calendar

const date3 = Temporal.PlainDate.from("2023-05-01[u-ca=chinese]");
console.log(date3.monthCode); // "M03"
console.log(date3.month); // 4, although it is also March (M03)!

const date4 = Temporal.PlainDate.from("2023-04-01[u-ca=chinese]");
console.log(date4.monthCode); // "M02L"
console.log(date4.month); // 3, this month is a leap month, i.e. a duplicate February

Перебор всех месяцев в году

const year = Temporal.PlainDate.from("2021-07-14"); // An arbitrary date in the year
for (
  let month = year.with({ month: 1 });
  month.year === year.year;
  month = month.add({ months: 1 })
) {
  console.log(month.month);
}

Альтернативно, это также безопасный способ (в отличие от примера с днем):

for (let month = 1; month <= year.monthsInYear; month++) {
  const monthDate = year.with({ month });
}

Изменение месяца

const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.with({ month: 2 });
console.log(newDate.toString()); // 2021-02-01

Вы также можете использовать add() или subtract(), чтобы переместиться на определенное количество месяцев от текущей даты.

const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.add({ months: 3 });
console.log(newDate.toString()); // 2021-10-01

По умолчанию with() ограничивает день диапазоном допустимых значений. Оба из следующих примеров установят месяц на последний месяц года:

const date = Temporal.PlainDate.from("2021-07-01");
const lastMonth = date.with({ month: date.monthsInYear }); // 2021-12-01
const lastMonth2 = date.with({ month: Number.MAX_VALUE }); // 2021-12-01

Спецификации

Specification
Temporal
# sec-get-temporal.plaindate.prototype.month

Совместимость с браузерами

Desktop Mobile Server
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
month
144
144
139
128
preview
144
139
95
No
No
144
No
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.day
  • Temporal.PlainDate.prototype.monthCode
  • Temporal.PlainDate.prototype.daysInMonth
  • Temporal.PlainDate.prototype.monthsInYear

© 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/month

Spec-Zone.ru

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