2014-09-08 6 views
53

Я использую Moment.js в моем проекте и форматирование даты следующим образом:Locale обнаружение с Moment.js

var date = moment.unix(1318781876); 
return date.format('LLLL'); 

моментные документы утверждают, что несколько локалей поддерживаются. Я хотел бы знать, будет ли moment.js автоматически определять локаль, или мне нужно определить локаль и передать ее на мгновение?

Обновление Моя цель - обеспечить отображение отображаемой даты в формате области пользователя. т.е. в США короткий формат даты мм/дд/гг, тогда как в Великобритании он дд/мм/гггг

ответ

109

По momentjs документации:

По умолчанию Moment.js поставляется с английской локалью строки. Если вам нужны другие места, вы можете загрузить их в Moment.js для дальнейшего использования.

Вы можете изменить его, что:

moment.locale(locale); 

Чтобы получить локаль пользователя с Javascript вы можете сделать это:

var locale = window.navigator.userLanguage || window.navigator.language; 

См: http://momentjs.com/docs/#/i18n/changing-locale/

и JavaScript for detecting browser language preference

+2

Итак, он соответствует t Причина того, что следующий код можно использовать непосредственно после загрузки момента-в-locale.js, чтобы гарантировать, что в течение всей страницы используется правильная локаль для ваших пользователей: moment.locale (window.navigator.userLanguage || window.navigator.language). Это правильное утверждение? – Brad

+0

Что делать, если пользователь использует английский язык, но живет в Китае? –

+1

@ GreyLi, чтобы гарантировать правильное отображение дат (например, английский формат), OP не говорит о часовых поясах. В вашем случае отображаемый формат будет английский. – Joanvo

Смежные вопросы