Momentjs: конвертировать 12 часов в объект Date

Я пытаюсь преобразовать 12-часовую строку в 24-часовой объект Date

day.from = day.from || moment("6:00", ["h:mm"]).format("HH:mm");

но я получаю эту ошибку:

angular.js:11706 Error: [ngModel:datefmt] Expected `6:00` to be a date

Любая идея, пожалуйста?


person ragnar    schedule 24.09.2016    source источник
comment
Что такое day.from ? также вы должны проверить эти docs.angularjs. org/error/ngModel/ stackoverflow.com/questions/30537886/   -  person Ujjwal kaushik    schedule 24.09.2016
comment
moment не является объектом date. angular ничего не знает о моменте, но у момента есть методы для возврата даты   -  person charlietfl    schedule 24.09.2016


Ответы (2)


Вот рабочая скрипка, не выдающая мне никаких ошибок

 moment("6:00", ["h:mm"]).format("HH:mm") // working fine
person AbhiGoel    schedule 24.09.2016

Сообщение об ошибке заставляет меня думать, что ваш date.from должен быть объектом Date, а не String. Обратите внимание, что format возвращает строку. Чтобы получить объект Date с момента, вы можете использовать toDate(), поэтому вы будет иметь следующий код:

day.from = day.from || moment("6:00", "h:mm").toDate();

PS. Вам не нужен массив форматов при синтаксическом анализе вашей строки, так как у вас есть только один элемент внутри нее, поэтому я использовал "h:mm" вместо ["h:mm"].

person VincenzoC    schedule 25.09.2016