2016-04-01 5 views
0

Я использую этот код, чтобы отобразить дату во французском формате:Moment.js: Дата Формата по браузеру Ланг

var dateToDisplay = moment(myDateInMS, "x").format("DD/MM/YYYY - hh:mm:ss"); // Output : "20/03/2016 - 12:35:32" 

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

+0

'localeData.longDateFormat (dateFormat);' http://momentjs.com/docs/#/i18n/ –

ответ

1

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

Это считая. Чтение языка из браузера и настройки Moment.js в соответствующей местности может быть сделано таким образом:

var localeData = moment.localeData(); 

switch (navigator.language || navigator.userLanguage) { 
    case 'fr': 
     localeData = moment.localeData('fr'); 
     break; 
} 

localeData.longDateFormat('LL'); // the example 'LL' will output date in "D MMMM YYYY format" 

Обратите внимание, что это устанавливает локаль всего экземпляра Moment.js (который, вероятно, что вы хотите делать). Также обратите внимание, что с Moment.js 2.8.0 изменение глобальной локали не влияет на существующие экземпляры.

Также см

+0

С помощью этого решения мне не нужно указывать формат? Мне нужно только назвать format()? – wawanopoulos

+0

localeDate.longDateFormat возвращает объект с вашим примером – wawanopoulos

0

момент будет на самом деле поиск подстрок локали вытащил из браузера в попытке подобрать правильную локаль. Таким образом, нет необходимости готовить или создавать деловые заявления. В качестве примера, момент имеет es в качестве локали, но не es-mx. Если в браузере установлено значение es-mx, функция locale ищет es-mx и, когда она не находит его, возвращается к es. Таким образом:

moment.locale('es-mx'); 
"es" 

Это означает, что для ваших целей вы можете просто сделать:

moment.locale(navigator.userLanguage || navigator.language); 

Тогда при форматировании даты, используйте один из локализаций определенных форматов, чтобы сделать их подходящими для пользователя:

moment().format('LL') 
"1 de abril de 2016" 
moment().format('L') 
"01/04/2016" 

Для всех локализованных форматов и того, что они должны производить, см. Раздел локализованного формата документации формата: http://momentjs.com/docs/#/displaying/format/

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