2014-09-08 12 views
53

Używam Moment.js w moim projekcie i formatowania dat następująco:Locale detekcja z Moment.js

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

Docs chwila stwierdzić wielokrotne lokalizacje są obsługiwane. Chciałbym wiedzieć, czy plik instant.js automatycznie wykryje ustawienia narodowe, czy też muszę wykryć ustawienia regionalne i przekazać je na chwilę?

Aktualizacja Moim celem jest zapewnienie, że wyświetlana data jest w formacie regionu użytkownika. czyli w USA krótki format daty to dd/mm/rr natomiast w Wielkiej Brytanii jest to dd/mm/rr

Odpowiedz

109

W dokumentacji momentjs:

Domyślnie Moment.js pochodzi z angielskiej lokalizacji smyczki. Jeśli potrzebujesz innych ustawień regionalnych, możesz załadować je do Moment.js do późniejszego wykorzystania.

można zmienić go, że:

moment.locale(locale); 

Aby uzyskać locale użytkownika z javascript można zrobić:

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

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

i JavaScript for detecting browser language preference

+2

Tak więc oznacza to o powód, że następującego kodu można użyć bezpośrednio po załadowaniu pliku moment-with-locale.js, aby zapewnić, że moment używa prawidłowych ustawień narodowych dla użytkowników na stronie: moment.locale (window.navigator.userLanguage || window.navigator.language). Czy to jest poprawne stwierdzenie? – Brad

+0

Co zrobić, jeśli użytkownik korzysta z angielskiego, ale mieszka w Chinach? –

+1

@GreyLi, który ma na celu zapewnienie poprawnego wyświetlania dat (tj. Formatu angielskiego), OP nie mówi o strefach czasowych. W twoim przypadku wyświetlany format będzie angielski. – Joanvo