2014-12-15 2 views
4

У меня есть следующий код:MomentJS иногда возвращает неверные даты

data.begin="16-12-2014 4:00 PM" 
data.begin=moment(data.begin, "DD-MM-YYYY h:mm A"); 
data.begin=parseInt(moment.utc(data.begin).valueOf()); 

, а затем я экономлю это в моей базе данных. Значение, хранящееся в базе данных, равно 1418725800000.

Я отображая то же самое в моей форме, используя следующий код

return moment(date).format('DD-MM-YYYY h:mm A'); 

Это показывает правильные данные, но иногда, когда я пытаюсь то же самое, я получаю Invalid date ошибку. В чем проблема?

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

enter image description here

ответ

2

В скриншоте ошибок, вы пытаетесь разобрать миллисекунды с начала эпохи, как String:

moment("1418725800000")... 

Вместо этого, вы должны использовать Number:

moment(1418725800000)... 

Может быть у вас такая же проблема в других местах. Используйте parseInt(string, 10) для преобразования String в Number, например. при использовании значения от <input>.

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