Date.prototype.toLocaleFormat()

Не стандартно
Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.

Нестандартный метод toLocaleFormat() преобразует дату в строку, используя указанное форматирование. Объект Intl.DateTimeFormat является совместимой со стандартами альтернативой при форматировании дат. Так же смотрите новую версию метода Date.prototype.toLocaleDateString().

Синтаксис

dateObj.toLocaleFormat(formatString)

Параметры

formatString
Строка формата в той же форме, что ожидается функцией C strftime().

Описание

Метод toLocaleFormat() обеспечивает больший контроль программного обеспечения над форматированием генерируемых даты и/или времени. Названия месяцев и дней недели локализуются с помощью локали операционной системы. Однако, порядок дней и месяцев и другие задачи локализации автоматически не обрабатываются, так как эти аспекты контролируете вы. Вы должны позаботиться о том, что строка формата была правильно локализована в соответствии с настройками системы пользователя. Знайте, что используемая локаль не обязательно совпадает с локалью браузера.

Разработчики расширений и XULRunner должны знать, что загрузку строки формата их файлов .dtd или .properties через URI chrome://somedomain/locale/somefile.ext нужно избегать, поскольку файлы .dtd/.properties и метод toLocaleFormat() не обязательно используют одну и ту же локаль, из-за чего результат может выглядеть странно, неоднозначно или даже нечитаемо.

Также обратите внимание, что поведение локали зависит от платформы и пользователь может настроить эту локаль, так что использование системной локали для выбора строки формата в некоторых случаях может быть даже неадекватным. Вы можете рассмотреть возможность использования более общих методов toLocale* объекта Date, либо написать свою собственную локализацию даты, используя для её отображения методы get* объекта Date.

Примеры

Пример: использование метода toLocaleFormat()

var today = new Date();
var date = today.toLocaleFormat('%A, %B %e, %Y'); // плохой пример

В примере выше метод toLocaleFormat() возвращает строку вида "Wednesday, October 3, 2007". обратите внимание, что строка формата в данном примере не локализуется должным образом, что приводит к проблемам, описанным выше.

Библиотеки

Вы можете использовать библиотеку DateJS, если Date.prototype.toLocaleDateString() недоступен:

if (!Date.prototype.toLocaleFormat) {
    (function() {
        Date.prototype.toLocaleFormat = function(formatString) {
            return this.format(formatString);
        };
    }());
}

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

Не является частью какой-либо спецификации. Реализована в JavaScript 1.6.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
toLocaleFormat
УстаревшаяНестандартная
Chrome Нет поддержки НетEdge Нет поддержки НетFirefox Нет поддержки 1.5 — 58IE Нет поддержки НетOpera Нет поддержки НетSafari Нет поддержки НетWebView Android Нет поддержки НетChrome Android Нет поддержки НетFirefox Android Нет поддержки 4 — 58Opera Android Нет поддержки НетSafari iOS Нет поддержки НетSamsung Internet Android Нет поддержки Нетnodejs Нет поддержки Нет

Легенда

Нет поддержки  
Нет поддержки
Нестандартная. Ожидается плохая кросс-браузерная поддержка.
Нестандартная. Ожидается плохая кросс-браузерная поддержка.
Устаревшая. Не следует использовать в новых веб-сайтах
Устаревшая. Не следует использовать в новых веб-сайтах

Смотрите также