2016-10-08 3 views
2

Я использую в настоящее время moment.js (moment-with-locales.js - v.2.14.1) в своем проекте. Я хочу удалить время моей строки datetime, чтобы получить только дату. Но если я использую метод time.js .format(), я получил неверную дату.moment.js использует месяц как день вместо дня

Я хочу форматировать это DATETIME строки:

от '08.10.2016 11:00' до '08.10.2016'

Вот является пропущено, что я использовал в своем угловом проекте :

var date = moment('08.10.2016 11:00').format('DD.MM.YYYY') 
console.log(date) 

Если я запускаю это я получил этот выход

10.08.2016 

вместо 08.10.2016

Самое смешное, если я хочу, чтобы получить временную метку (миллисекунды) моей даты и времени строки, он отлично работает. Пример:

var dateStart = moment('08.10.2016 19:00', 'DD.MM.YYYY HH:mm').valueOf() 
    console.log(dateStart) 

Вернется

1475946000000 -> Sat Oct 08 2016 19:00:00 GMT+0200 

Как я могу получить правильную дату?

ответ

6

Это зависит от вашего региона. en-US locate означает, что момент будет анализироваться на "month day year". Итак, вам нужно разобрать с шаблоном, а также:

var date = moment('08.10.2016 11:00','DD.MM.YYYY HH:mm').format('DD.MM.YYYY') 
+0

... и документация на [String + Format] (http://momentjs.com/docs/#/parsing/string-format/). –

+0

Спасибо большое! Отлично работает! –

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