Не стандартно
Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.
Сводка
Нестандартный метод 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". обратите внимание, что строка формата в данном примере не локализуется должным образом, что приводит к проблемам, описанным выше.
Спецификации
Не является частью какой-либо спецификации. Реализована в JavaScript 1.6.
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | ? | (Да) | Нет | ? | ? |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | ? | ? | (Да) | ? | ? | ? |