Spec-Zone.ru › JavaScript

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

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

Спецификация
Temporal
# sec-temporal.plainmonthday.prototype.tolocalestring

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

Настольные компьютеры Мобильные Сервер
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.PlainMonthDay
  • Intl.DateTimeFormat
  • Temporal.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

Spec-Zone.ru

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