Temporal.PlainYearMonth
Базовая поддержка Ограниченная доступность
Эта функция не относится к базовым, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Объект Temporal.PlainYearMonth представляет год и месяц календарной даты без дня и часового пояса; например, событие в календаре, которое длится весь месяц. По своей сути он представлен календарной датой ISO 8601 с полями года, месяца и дня, а также связанной с ней календарной системой. День используется для устранения неоднозначности года и месяца в календарных системах, отличных от ISO.
Описание
Объект PlainYearMonth по сути представляет собой часть с годом и месяцем объекта Temporal.PlainDate, без дня.
Формат RFC 9557
Объекты PlainYearMonth можно сериализовать и разбирать с использованием формата RFC 9557 — расширения формата ISO 8601 / RFC 3339. Строка имеет следующий вид (пробелы добавлены только для удобства чтения и не должны присутствовать в самой строке):
YYYY-MM-DD [u-ca=calendar_id]
-
YYYY - Либо четырехзначное число, либо шестизначное число со знаком
+или-. -
MM - Двухзначное число от
01до12. -
DDНеобязательно - Двухзначное число от
01до31. Оно обязательно для календарей, отличных от ISO, и необязательно в остальных случаях. Если его опустить, строка будет иметь видYYYY-MMилиYYYYMM. Обратите внимание, что фактически сохраненный опорный день может отличаться от указанного вами, однако представляемые год и месяц будут теми же. Подробнее см. в разделеTemporal.PlainYearMonth.from(). КомпонентыYYYY,MMиDDмогут разделяться символом-или не разделяться вовсе. -
[u-ca=calendar_id]Необязательно - Замените
calendar_idкалендарем, который нужно использовать. Список наиболее распространенных поддерживаемых типов календарей см. в разделеIntl.supportedValuesOf(). По умолчанию используется[u-ca=iso8601]. Можно добавить критический флаг, поставив перед ключом!: например,[!u-ca=iso8601]. Обычно этот флаг сообщает другим системам, что аннотацию нельзя игнорировать, если они ее не поддерживают. АнализаторTemporalвыдаст ошибку, если аннотации содержат две или более аннотации календаря и одна из них является критической. Обратите внимание, чтоYYYY-MM-DDвсегда интерпретируется как календарная дата ISO 8601, а затем преобразуется в указанный календарь.
В качестве входных данных можно также указать время, смещение и идентификатор часового пояса в том же формате, что и PlainDateTime, но они будут проигнорированы. Другие аннотации в формате [key=value] также игнорируются; у них не должно быть критического флага.
При сериализации можно настроить отображение идентификатора календаря и добавление к нему критического флага.
Конструктор
-
Temporal.PlainYearMonth()Экспериментальная - Создает новый объект
Temporal.PlainYearMonth, напрямую принимая базовые данные.
Статические методы
-
Temporal.PlainYearMonth.compare() - Возвращает число (-1, 0 или 1), указывающее, идет ли первый год и месяц перед вторым, совпадает с ним или идет после него. Эквивалентно сравнению соответствующих дат ISO 8601. Год и месяц в разных календарях могут считаться равными, если они начинаются в одну и ту же дату ISO.
-
Temporal.PlainYearMonth.from() - Создает новый объект
Temporal.PlainYearMonthна основе другого объектаTemporal.PlainYearMonth, объекта со свойствами года и месяца или строки RFC 9557.
Свойства экземпляра
Эти свойства определены в Temporal.PlainYearMonth.prototype и доступны всем экземплярам Temporal.PlainYearMonth.
-
Temporal.PlainYearMonth.prototype.calendarId - Возвращает строку, представляющую календарь, используемый для интерпретации внутренней даты ISO 8601.
-
Temporal.PlainYearMonth.prototype.constructor - Функция-конструктор, создавшая объект экземпляра. Для экземпляров
Temporal.PlainYearMonthисходным значением является конструкторTemporal.PlainYearMonth(). -
Temporal.PlainYearMonth.prototype.daysInMonth - Возвращает положительное целое число, обозначающее количество дней в месяце этой даты. Зависит от календаря.
-
Temporal.PlainYearMonth.prototype.daysInYear - Возвращает положительное целое число, обозначающее количество дней в году этой даты. Зависит от календаря. В календаре ISO 8601 это 365 дней или 366 дней в високосном году.
-
Temporal.PlainYearMonth.prototype.era - Возвращает строчную строку, зависящую от календаря и обозначающую эру этого года и месяца, или
undefined, если календарь не использует эры (например, ISO 8601). ЗначенияeraиeraYearвместе однозначно определяют год в календаре так же, как это делаетyear. Зависит от календаря. Для григорианского календаря это либо"ce", либо"bce". -
Temporal.PlainYearMonth.prototype.eraYear - Возвращает неотрицательное целое число, обозначающее год этого года и месяца в пределах эры, или
undefined, если календарь не использует эры (например, ISO 8601). Отсчет лет обычно начинается с 1 (чаще) или 0; годы в эре могут уменьшаться с течением времени (например, годы до нашей эры в григорианском календаре). ЗначенияeraиeraYearвместе однозначно определяют год в календаре так же, как это делаетyear. Зависит от календаря. -
Temporal.PlainYearMonth.prototype.inLeapYear - Возвращает логическое значение, указывающее, приходится ли этот год и месяц на високосный год. Високосный год — это год, в котором больше дней (за счет дополнительного дня или месяца), чем в обычном году. Зависит от календаря.
-
Temporal.PlainYearMonth.prototype.month - Возвращает положительное целое число — порядковый номер месяца в году, начиная с 1. Первый месяц этого года —
1, а последний —monthsInYear. Зависит от календаря. Обратите внимание, что, в отличие отDate.prototype.getMonth(), нумерация начинается с 1. Если в календаре есть високосные месяцы, месяц с тем жеmonthCodeможет иметь разные значенияmonthв разные годы. -
Temporal.PlainYearMonth.prototype.monthCode - Возвращает строку, зависящую от календаря и обозначающую месяц этого года и месяца. Зависит от календаря. Обычно это
Mи двузначный номер месяца. Для високосных месяцев к коду предыдущего месяца добавляетсяL. Если високосный месяц является первым месяцем года, используется кодM00L. -
Temporal.PlainYearMonth.prototype.monthsInYear - Возвращает положительное целое число, обозначающее количество месяцев в году этой даты. Зависит от календаря. В календаре ISO 8601 это всегда 12, однако в других календарных системах значение может отличаться.
-
Temporal.PlainYearMonth.prototype.year - Возвращает целое число, обозначающее количество лет между этим годом и месяцем и началом календарного года-эпохи. Зависит от календаря. Обычно год 1 — это либо первый год последней эры, либо год ISO 8601
0001. Если эпоха приходится на середину года, этот год будет иметь одинаковое значение до и после даты начала эры. -
Temporal.PlainYearMonth.prototype[Symbol.toStringTag] - Исходное значение свойства
[Symbol.toStringTag]— строка"Temporal.PlainYearMonth". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Temporal.PlainYearMonth.prototype.add() - Возвращает новый объект
Temporal.PlainYearMonth, представляющий этот год и месяц, сдвинутые вперед на указанную длительность (в форме, преобразуемой с помощьюTemporal.Duration.from()). -
Temporal.PlainYearMonth.prototype.equals() - Возвращает
true, если значение этого года и месяца эквивалентно значению другого года и месяца (в форме, преобразуемой с помощьюTemporal.PlainYearMonth.from()), иfalseв противном случае. Сравниваются как соответствующие даты ISO, так и календари, поэтому два значения года и месяца из разных календарей могут считаться равными при вызовеTemporal.PlainYearMonth.compare(), но не при вызовеequals(). -
Temporal.PlainYearMonth.prototype.since() - Возвращает новый объект
Temporal.Duration, представляющий длительность от другого года и месяца (в форме, преобразуемой с помощьюTemporal.PlainYearMonth.from()) до этого года и месяца. Длительность положительна, если другой месяц предшествует этому, и отрицательна, если следует за ним. -
Temporal.PlainYearMonth.prototype.subtract() - Возвращает новый объект
Temporal.PlainYearMonth, представляющий этот год и месяц, сдвинутые назад на указанную длительность (в форме, преобразуемой с помощьюTemporal.Duration.from()). -
Temporal.PlainYearMonth.prototype.toJSON() - Возвращает строку, представляющую этот год и месяц в том же формате RFC 9557, что и вызов
toString(). Предназначен для неявного вызова методомJSON.stringify(). -
Temporal.PlainYearMonth.prototype.toLocaleString() - Возвращает строку с языковым представлением этого года и месяца.
-
Temporal.PlainYearMonth.prototype.toPlainDate() - Возвращает новый объект
Temporal.PlainDate, представляющий этот год и месяц и указанный день в той же календарной системе. -
Temporal.PlainYearMonth.prototype.toString() - Возвращает строку, представляющую этот год и месяц в формате RFC 9557.
-
Temporal.PlainYearMonth.prototype.until() - Возвращает новый объект
Temporal.Duration, представляющий длительность от этого года и месяца до другого года и месяца (в форме, преобразуемой с помощьюTemporal.PlainYearMonth.from()). Длительность положительна, если другой месяц следует за этим, и отрицательна, если предшествует ему. -
Temporal.PlainYearMonth.prototype.valueOf() - Выбрасывает исключение
TypeError, не позволяя экземплярамTemporal.PlainYearMonthнеявно преобразовываться в примитивы при использовании в арифметических операциях или операциях сравнения. -
Temporal.PlainYearMonth.prototype.with() - Возвращает новый объект
Temporal.PlainYearMonth, представляющий этот год и месяц с заменой некоторых полей новыми значениями.
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal-plainyearmonth-objects |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Серверы | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | Bun | Deno | Node.js | |
PlainYearMonth |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PlainYearMonth |
Нет |
Нет |
139 |
Нет |
Нет |
Нет |
139 |
Нет |
Нет |
Нет |
Нет |
Нет |
? |
2.7 |
26.0.0 |
add |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
calendarId |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
compare |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
daysInMonth |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
daysInYear |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
equals |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
era |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
eraYear |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
from |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
inLeapYear |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
month |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
monthCode |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
monthsInYear |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
since |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
subtract |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toJSON |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toLocaleString |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toPlainDate |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toString |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
until |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
valueOf |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
with |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
year |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
См. также
© 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/PlainYearMonth