--- title: Date.prototype.toLocaleDateString() slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString tags: - Date - Internationalization - JavaScript - Method - Prototype - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString ---
Метод toLocaleDateString()
возвращает строку с языко-зависимым представлением части с датой в этой дате. Новые аргументы locales
и options
позволяют приложениям определять язык, чьи соглашения по форматированию должны использоваться, а также менять поведение этого метода. В старых реализациях, игнорирующих аргументы locales
и options
, используемая локаль и форма возвращённой строки целиком зависит от реализации.
dateObj.toLocaleDateString([locales [, options]])
Проверьте раздел Совместимость с браузерами, чтобы увидеть, какие браузеры поддерживают аргументы locales
и options
, и Пример: проверка поддержки аргументов locales
и options
для определения этой возможности.
Значением по умолчанию для каждой компоненты даты-времени является {{jsxref("Global_Objects/undefined", "undefined")}}, однако, если все свойства weekday
, year
, month
и day
равны {{jsxref("Global_Objects/undefined", "undefined")}}, то их значения предполагаются равными "numeric"
.
toLocaleDateString()
При базовом использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и опциями по умолчанию.
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); // Вывод toLocaleDateString() без аргументов зависит от реализации, // локали по умолчанию и часового пояса по умолчанию console.log(date.toLocaleDateString()); // → "12/11/2012", если код запущен с локалью en-US и часовым поясом America/Los_Angeles
locales
и options
Аргументы locales
и options
поддерживаются ещё не всеми браузерами. Для проверки того, поддерживает ли их уже реализация, можно затребовать несуществующую метку языка и проверить, будет ли выброшено исключение {{jsxref("Global_Objects/RangeError", "RangeError")}}:
function toLocaleDateStringSupportsLocales() { try { new Date().toLocaleDateString('i'); } catch (e) { return e.name === 'RangeError'; } return false; }
locales
Этот пример показывает некоторые локализованные форматы даты. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент locales
:
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// Форматирование ниже предполагает, что местный часовой пояс равен
// America/Los_Angeles для локали США
// В америкаском английском используется порядок месяц-день-год
console.log(date.toLocaleDateString('en-US'));
// → "12/19/2012"
// В британском английском используется порядок день-месяц-год
console.log(date.toLocaleDateString('en-GB'));
// → "20/12/2012"
// В корейском используется порядок год-месяц-день
console.log(date.toLocaleDateString('ko-KR'));
// → "2012. 12. 20."
// В большинстве арабоговорящих стран используют настоящие арабские цифры
console.log(date.toLocaleDateString('ar-EG'));
// → "٢٠/١٢/٢٠١٢"
// В Японии приложения могут захотеть использовать японский календарь,
// в котором 2012 год являеся 24-м годом эры Хейсей
console.log(date.toLocaleDateString('ja-JP-u-ca-japanese'));
// → "24/12/20"
// Если запрашиваемый язык может не поддерживаться, например
// балийский, откатываемся на запасной язык, в данном случае индонезийский
console.log(date.toLocaleDateString(['ban', 'id']));
// → "20/12/2012"
options
Результат, предоставляемый методом toLocaleDateString()
, может быть настроен с помощью аргумента options
:
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); // Запрашиваем день недели вместе с длинным форматом даты var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; console.log(date.toLocaleDateString('de-DE', options)); // → "Donnerstag, 20. Dezember 2012" // Приложение может захотеть использовать UTC и показать это options.timeZone = 'UTC'; options.timeZoneName = 'short'; console.log(date.toLocaleDateString('en-US', options)); // → "Thursday, December 20, 2012, GMT"
При форматировании большого количества дат лучшим вариантом будет создание объекта {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} и использование функции, предоставляемой его свойством {{jsxref("DateTimeFormat.prototype.format", "format")}}.
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 3-е издание. | Стандарт | Изначальное определение. Реализована в JavaScript 1.0. |
{{SpecName('ES5.1', 'sec-15.9.5.6', 'Date.prototype.toLocaleDateString')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-date.prototype.tolocaledatestring', 'Date.prototype.toLocaleDateString')}} | {{Spec2('ES6')}} | |
{{SpecName('ES Int 1.0', '#sec-13.3.2', 'Date.prototype.toLocaleDateString')}} | {{Spec2('ES Int 1.0')}} | Определяет аргументы locales и options . |
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Аргументы locales и options |
{{CompatChrome("24")}} + поддержка временных зон, отличных от UTC | {{CompatGeckoDesktop("29")}} | {{CompatIE("11")}} | {{CompatOpera("15")}} | {{CompatNo}} |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Аргументы locales и options |
{{CompatNo}} | {{CompatChrome("26")}} | {{CompatNo}} {{bug(864843)}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} |