Установка формата даты по умолчанию Moment.js на dd/mm/yyyy

При вызове .calendar() в Moment.js даты выводятся с использованием формата MM/DD/YYYY. От взгляда на код это, по-видимому, контролируется токеном L. Точно так же маркер LL выводит дату с 29 ноября 2013 года.

Единственная проблема заключается в том, что это форматы даты в США, и мне нужно отображать шахту в соответствии с австралийскими стандартами, например. DD/MM/YYYY и 29 ноября 2013 года.

Кто-нибудь знает, где/как установить это?

Примечание. В моем локали и местоположении системы установлены английский (Австралия) и Австралия соответственно.

Ответ 1

Вы должны использовать параметр moment-with-lang.js и установить язык для "Австралия"

проверьте документы здесь http://momentjs.com/docs/#/i18n/changing-locale/

для вас это должно быть что-то вроде moment.lang('en-AU');

Ответ 2

Используя moment-with-lang.js, код

<script src="moment-with-langs.js"></script>
time = moment("Dec 25, 1995");
moment(time).calendar() // note the absence of moment.lang("en-AU");

выходы

25/12/1995 

В отличие от этого, используя moment.lang("en-AU");, получим, что

moment.lang("en-AU");
moment(time).calendar();

выходы

25/12/1995 

Вы также можете запрограммировать желаемый вывод, но используя format()

moment(time).format("D MMMM YYYY")

выходы

25 December 1995

Ответ 3

В версии 2.8.1 и новее используйте locale:

moment.locale('en-AU');

Если вы используете версию старше 2.8.1, используйте lang:

moment.lang('en-AU');

Это установит локаль в глобальном масштабе в moment, и после установки этого будут затронуты все функции зависимостей языкового стандарта.

Обратите внимание, что это недоступно до версии 1.7.0.

См. документация.