Temporal.PlainMonthDay.prototype.toLocaleString()
Базовый уровень Ограниченная доступность
Эта функция не является базовым уровнем, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Метод toLocaleString() экземпляров Temporal.PlainMonthDay возвращает строку с представлением этого месяца-дня, чувствительным к языку. В реализациях с поддержкой Intl.DateTimeFormat API этот метод делегирует Intl.DateTimeFormat.
Каждый раз, когда вызывается toLocaleString, выполняется поиск в большой базе данных строк локализации, что потенциально неэффективно. Когда метод вызывается много раз с одинаковыми аргументами, лучше создать объект Intl.DateTimeFormat и использовать его метод format(), поскольку объект DateTimeFormat запоминает переданные ему аргументы и может принять решение кэшировать часть базы данных, чтобы последующие вызовы format могли искать строки локализации в более ограниченном контексте.
Синтаксис
toLocaleString() toLocaleString(locales) toLocaleString(locales, options)
Параметры
Параметры locales и options настраивают поведение функции и позволяют приложениям указывать язык, соглашения о форматировании которого следует использовать.
В реализациях, поддерживающих Intl.DateTimeFormat API, эти параметры точно соответствуют параметрам конструктора Intl.DateTimeFormat(). Реализации без поддержки Intl.DateTimeFormat возвращают ту же строку, что и toString(), игнорируя оба параметра.
-
localesНеобязательный - Строка с языковым тегом BCP 47 или массив таких строк. Соответствует параметру
localesконструктораIntl.DateTimeFormat(). -
optionsНеобязательный - Объект, настраивающий формат вывода. Соответствует параметру
optionsконструктораIntl.DateTimeFormat(). Опцияcalendarдолжна быть предоставлена с тем же значением, что и календарь этого месяца-дня. Относительно опций компонентов даты и времени и ярлыков стиля (dateStyleиtimeStyle), опции должны следовать одной из этих форм:- Не предоставлять ни одной из них:
monthиdayпо умолчанию будут"numeric". - Предоставить только
dateStyle: это расширяется до форматовmonthиday. - Предоставить некоторые опции компонентов даты и времени, из которых по крайней мере одна является
monthилиday. Будут включены только указанные компоненты даты.
- Не предоставлять ни одной из них:
См. конструктор Intl.DateTimeFormat() для получения подробной информации об этих параметрах и их использовании.
Возвращаемое значение
Строка, представляющая данный месяц-день в соответствии с соглашениями, зависящими от языка.
В реализациях с Intl.DateTimeFormat это эквивалентно new Intl.DateTimeFormat(locales, options).format(monthDay), где options нормализовано, как описано выше.
Примечание: В большинстве случаев форматирование, возвращаемое toLocaleString(), является последовательным. Однако вывод может различаться между реализациями, даже в пределах одного локали — вариации вывода предусмотрены и разрешены спецификацией. Он также может отличаться от ожидаемого. Например, строка может использовать неразрывные пробелы или быть окружена двунаправленными управляющими символами. Вы не должны сравнивать результаты toLocaleString() с жестко заданными константами.
Исключения
-
RangeError - Выбрасывается, если какая-либо из опций недопустима.
-
TypeError - Выбрасывается, если какая-либо из опций не имеет ожидаемого типа.
Примеры
Использование toLocaleString()
Основное использование этого метода без указания locale возвращает отформатированную строку в локали по умолчанию и с опциями по умолчанию.
// Note that just specifying "08-01" defaults to the ISO 8601 calendar,
// which throws an error if the locale's default calendar is not ISO 8601.
const md = Temporal.PlainMonthDay.from("2021-08-01[u-ca=gregory]");
console.log(md.toLocaleString()); // 8/1 (assuming en-US locale and Gregorian calendar)
Если календарь месяца-дня не соответствует календарю локали по умолчанию, даже когда его календарь является iso8601, необходимо явно предоставить опцию calendar с тем же значением.
const md = Temporal.PlainMonthDay.from("08-01");
md.toLocaleString("en-US", { calendar: "iso8601" }); // 08-01
Использование toLocaleString() с опциями
Вы можете настроить, какие части месяца-дня будут включены в вывод, предоставив параметр options.
const md = Temporal.PlainMonthDay.from("2021-08-01[u-ca=gregory]");
md.toLocaleString("en-US", { dateStyle: "full" }); // August 1
md.toLocaleString("en-US", { month: "long" }); // August
md.toLocaleString("en-US", { day: "numeric" }); // 1
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | Bun | Deno | Node.js | |
toLocaleString |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
См. также
Temporal.PlainMonthDayIntl.DateTimeFormatTemporal.PlainMonthDay.prototype.toJSON()Temporal.PlainMonthDay.prototype.toString()
© 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/toLocaleString