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.PlainDateTemporal.PlainDate.prototype.with()Temporal.PlainDate.prototype.add()Temporal.PlainDate.prototype.subtract()Temporal.PlainDate.prototype.yearTemporal.PlainDate.prototype.dayTemporal.PlainDate.prototype.monthCodeTemporal.PlainDate.prototype.daysInMonthTemporal.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