2014-01-27 3 views
1

Я пытаюсь использовать MomentJS для поддержки обработки дат в своем приложении. Тем не менее, у меня возникла проблема с обработкой даты.Ошибка момента получения даты ошибки

Файлы загружаются в следующем порядке:

<script src="/javascripts/modules/moment/moment.min.js"></script> 
<script src="/javascripts/modules/moment/moment-timezone.min.js"></script> 
<script src="/javascripts/modules/moment/moment-timezone-data.js"></script> 
<script src="/javascripts/modules/moment/moment-with-langs.min.js"></script> 

Сейчас в somepart моего JS кода изменить язык момента для FR или PT.

moment.lang('fr'); 

Оба языка validade даты как "DD/MM/YYYY" вместо американского шаблона. Поэтому я ожидаю момент , чтобы подтвердить дату, следующую за образцом даты страны.

Тогда 12/10/2014 должно быть: день (12), месяц (09), год (2014), но она возвращается всегда американский шаблон вместо правильный.

Я получаю свойство даты как:

console.log("DAY: " + moment(textDate).date()); 
console.log("MONTH: " + moment(textDate).month()); 
console.log("YEAR: " + moment(textDate).year()); 

где textDate моя дата берется из ввода текста.

## EDIT ##

Я знаю, что я могу передать образец в данный момент. То есть:

moment(textDate, 'DD/MM/YYYY'); 

В случае моего приложения я использую как это:

moment(textDate, '<%=lingua.general.time.pDate%>'); 

Однако, предполагают, чтобы работать автоматически, не так ли? Конечно, если вам уже нужны языковые пакеты. Так что предыдущий способ, о котором я упоминал ранее, должен работать, что угодно.

ответ

1

Если вы не передадите аргументы форматирования, то ваш браузер сделает синтаксический разбор (за исключением полной метки времени ISO).

Рассказывать момент, чтобы сделать синтаксический и использовать локализованную короткий формат даты, связанные с языком, передать L как формат строки:

moment(textDate, 'L') 

Смотрите в документации:

  • Разбор с использованием #String+Format
  • display formats. Прокрутите вниз до «Локализованные форматы». (Парсер использует те же строки формата)

Кроме того, не связанный с вашим вопросом, но момент-с-langs уже включает в себя копию moment.js, поэтому вам не нужны оба сценария.

+0

Хорошо, Matt. Это сработало для меня. Я думал, что когда вы укажете язык, он автоматически распознает шаблон. Я был наивным. Теперь моя проблема связана с функцией isValid, но это тема для другой темы. – Ito

+0

Простая ошибка.Рад, что вы спросили, я уверен, что кто-то еще найдет это полезным! –

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