Momentjs:将 12 小时转换为日期对象

Posted

技术标签:

【中文标题】Momentjs:将 12 小时转换为日期对象【英文标题】:Momentjs : convert 12 hour to Date object 【发布时间】:2017-02-02 08:24:46 【问题描述】:

我正在尝试将 12 小时字符串转换为 24 日期对象

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

有什么想法吗?

【问题讨论】:

day.from 是什么?你也应该检查这些docs.angularjs.org/error/ngModel/…***.com/questions/30537886/… moment 不是 date 对象。角度对时刻一无所知,但时刻有返回日期的方法 【参考方案1】:

Here 是一个工作小提琴,不会为我抛出任何错误

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

【讨论】:

【参考方案2】:

错误信息让我觉得你的date.from 应该是一个日期对象而不是一个字符串。请注意,format 返回一个字符串。 你可以使用toDate()来获取一个Date对象,所以你会得到以下代码:

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

PS.解析字符串时不需要格式数组,因为其中只有一个元素,这就是我使用"h:mm"而不是["h:mm"]的原因。

【讨论】:

以上是关于Momentjs:将 12 小时转换为日期对象的主要内容,如果未能解决你的问题,请参考以下文章

如何将 12 或 24 小时时间格式的日期转换为“互联网”日期?

如何将日期/时间从 24 小时格式转换为 12 小时 AM/PM? [复制]

MomentJS 错误输出

php 24小时格式的日期转换为12小时的日期

Javascript:将 24 小时时间字符串转换为 12 小时时间,上午/下午且无时区

如何将(round)纪元时间转换为最接近的小时和日期wrt IST(在Java中)