2016-02-17 3 views
1

Я хочу, чтобы следующая строка даты была отформатирована с использованием момента.js, но она дала неверную дату.Как разбирать строку с датой, используя moment.js?

var dateString = '2/17/2016 12:16PM GMT-05:00'; 
var pattern = 'MM/DD/YYYY h:mma ZZ'; 
var testDate = moment(dateString).format(pattern); //Invalid Date 

Как правильно разобрать или есть ли другой способ сделать это?

EDIT: Ответ

Для синтаксического анализа мы должны использовать

var testDate = moment(dateString, pattern, locale); 

Но для форматирования мы должны использовать

var formattedDate = moment(testDate).format(pattern); 
+0

'PM' делает это неверная дата. Проверьте его с помощью «новой даты» ('17.02.2012 12:16 PM GMT-05: 00') '. – lxe

ответ

5

Просто используйте шаблон в качестве второго параметра в функции моментов

var testDate = moment(dateString, pattern) 

больше здесь в документации: http://momentjs.com/docs/#/parsing/string-format/

+0

Спасибо entio. Если вы думаете, что вопрос может помочь кому-то, вы можете выдвинуть этот вопрос. – sarsjits

+0

@sarsjits Если вы думаете, что ответ может помочь кому угодно, сделайте, как вы предложили с ответом, человек. – entio

1

Вы можете попробовать:

var dateString = '2/17/2016 12:16PM GMT-05:00'; 
 
var pattern = 'MM/DD/YYYY h:mma ZZ'; 
 
var testDate = moment(dateString, "MM/DD/YYYY h:mmA -hh:mm").format(pattern);

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