Temporal.PlainMonthDay
Базовая Ограниченная доступность
Эта функция не является Базовой, потому что она не работает в некоторых наиболее широко используемых браузерах.
Объект Temporal.PlainMonthDay представляет месяц и день календарной даты без года или часового пояса; например, событие в календаре, которое повторяется каждый год и происходит в течение всего дня. Он фундаментально представлен как календарная дата ISO 8601 с полями года, месяца и дня и связанной календарной системой. Год используется для устранения неоднозначности месяца-дня в не-ISO календарных системах.
Описание
PlainMonthDay по сути является частью месяца-дня объекта Temporal.PlainDate без года. Поскольку значение месяца-дня может меняться из года в год (например, существует ли он, или каков месяц-день следующего дня), этот объект сам по себе не предоставляет большого функционала, такого как сравнение, сложение или вычитание. У него даже нет свойства month, потому что индекс месяца не имеет смысла без года (например, два месяца из двух лет с одинаковым индексом могут иметь разные названия в случае високосных месяцев).
Формат RFC 9557
Объекты PlainMonthDay могут быть сериализованы и разобраны с использованием формата RFC 9557, расширения формата ISO 8601 / RFC 3339. Строка имеет следующий вид (пробелы предназначены только для удобочитаемости и не должны присутствовать в фактической строке):
YYYY-MM-DD [u-ca=calendar_id]
-
YYYYНеобязательно - Либо четырехзначное число, либо шестизначное число со знаком
+или-. Оно требуется для не-ISO календарей и необязательно в противном случае. Если опущено, вы можете либо заменитьYYYY-на--(так что строка выглядит как--MM-DDили--MMDD), либо опустить частьYYYY-полностью (так что строка выглядит какMM-DDилиMMDD). Обратите внимание, что фактически хранимый опорный год может отличаться от того, который вы предоставляете, но представленный месяц-день тот же. См.Temporal.PlainMonthDay.from()для получения дополнительной информации. -
MM - Двузначное число от
01до12. -
DD - Двузначное число от
01до31. Компоненты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] также игнорируются, и они не должны иметь критического флага.
При сериализации вы можете настроить, отображать ли ID календаря и добавлять ли для него критический флаг.
Конструктор
-
Temporal.PlainMonthDay()Экспериментально - Создает новый объект
Temporal.PlainMonthDayпутем непосредственной подачи базовых данных.
Статические методы
-
Temporal.PlainMonthDay.from() - Создает новый объект
Temporal.PlainMonthDayиз другого объектаTemporal.PlainMonthDay, объекта со свойствами месяца и дня, или строки RFC 9557.
Свойства экземпляра
Эти свойства определены в Temporal.PlainMonthDay.prototype и являются общими для всех экземпляров Temporal.PlainMonthDay.
-
Temporal.PlainMonthDay.prototype.calendarId - Возвращает строку, представляющую календарь, используемый для интерпретации внутренней даты ISO 8601.
-
Temporal.PlainMonthDay.prototype.constructor - Функция-конструктор, которая создала объект экземпляра. Для экземпляров
Temporal.PlainMonthDayначальным значением является конструкторTemporal.PlainMonthDay(). -
Temporal.PlainMonthDay.prototype.day - Возвращает положительное целое число, представляющее 1-базовый индекс дня в месяце этой даты, который является тем же номером дня, который вы увидели бы в календаре. Зависит от календаря. Обычно начинается с 1 и является непрерывным, но не всегда.
-
Temporal.PlainMonthDay.prototype.monthCode - Возвращает специфичную для календаря строку, представляющую месяц этой даты. Зависит от календаря. Обычно это
Mплюс двузначный номер месяца. Для високосных месяцев это код предыдущего месяца, за которым следуетL. Если високосный месяц является первым месяцем года, код —M00L. -
Temporal.PlainMonthDay.prototype[Symbol.toStringTag] - Начальное значение свойства
[Symbol.toStringTag]— это строка"Temporal.PlainMonthDay". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Temporal.PlainMonthDay.prototype.equals() - Возвращает
true, если этот месяц-день эквивалентен по значению другому месяцу-дню (в форме, преобразуемойTemporal.PlainMonthDay.from()), иfalseв противном случае. Они сравниваются как по их значениям даты, так и по их календарям. -
Temporal.PlainMonthDay.prototype.toJSON() - Возвращает строку, представляющую этот месяц-день в том же формате RFC 9557, что и вызов
toString(). Предназначен для неявного вызова с помощьюJSON.stringify(). -
Temporal.PlainMonthDay.prototype.toLocaleString() - Возвращает строку с зависящим от языка представлением этого месяца-дня.
-
Temporal.PlainMonthDay.prototype.toPlainDate() - Возвращает новый объект
Temporal.PlainDate, представляющий этот месяц-день и предоставленный год в той же календарной системе. -
Temporal.PlainMonthDay.prototype.toString() - Возвращает строку, представляющую этот месяц-день в формате RFC 9557.
-
Temporal.PlainMonthDay.prototype.valueOf() - Вызывает
TypeError, что предотвращает неявное преобразование в примитивы экземпляровTemporal.PlainMonthDayпри использовании в арифметических операциях или операциях сравнения. -
Temporal.PlainMonthDay.prototype.with() - Возвращает новый объект
Temporal.PlainMonthDay, представляющий этот месяц-день с некоторыми полями, замененными новыми значениями.
Примеры
Получение следующего наступления праздника
// Chinese New Years are on 1/1 in the Chinese calendar
const chineseNewYear = Temporal.PlainMonthDay.from({
monthCode: "M01",
day: 1,
calendar: "chinese",
});
const currentYear = Temporal.Now.plainDateISO().withCalendar("chinese").year;
let nextCNY = chineseNewYear.toPlainDate({ year: currentYear });
if (Temporal.PlainDate.compare(nextCNY, Temporal.Now.plainDateISO()) <= 0) {
nextCNY = nextCNY.add({ years: 1 });
}
console.log(
`The next Chinese New Year is on ${nextCNY.withCalendar("iso8601").toLocaleString()}`,
);
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal-plainmonthday-objects |
Совместимость с браузерами
| Настольные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
PlainMonthDay |
144 |
144 |
139 |
128 |
превью |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
PlainMonthDay |
Нет |
Нет |
139 |
Нет |
Нет |
Нет |
139 |
Нет |
Нет |
Нет |
Нет |
Нет |
? |
2.7 |
26.0.0 |
calendarId |
144 |
144 |
139 |
128 |
превью |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
day |
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 |
from |
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 |
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 |
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 |
|---|
Смотрите также
© 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/PlainMonthDay