【问题标题】:Moment.js works with valid date on Chrome but not IE or FirefoxMoment.js 适用于 Chrome 上的有效日期,但不适用于 IE 或 Firefox
【发布时间】:2015-11-16 08:50:43
【问题描述】:

所以这在 Chrome 中运行良好,但在 IE(11) 和 Firefox 中运行良好

 var startDate = moment("12-Nov-2015").format("D-MMM-YYYY");
        var startTime = "10:00 AM";

        var startDateTime = moment(startDate + ' ' + startTime);
alert(moment(startDateTime).format("D-MMM-YYYY h:mm A"));

IE 和 Chrome 只返回“无效日期”

任何想法我缺少什么?

【问题讨论】:

  • endTime 未定义导致endDate + ' ' + undefined?
  • 抱歉打错了,还是有问题

标签: jquery momentjs


【解决方案1】:

这是因为“2015 年 11 月 12 日”不是有效的 ISO 8601 格式,因此 MomentJS 回退到浏览器解析器,这根据浏览器的不同而有很大不同。所以这个问题可能是因为谷歌浏览器接受这种格式但不接受 IE 或 Firefox,而不是 Moment 的问题。

更多详情请查看此链接:http://momentjs.com/docs/#/parsing/string/

正如他们的文档所述,如果使用非 ISO 8601 格式,则在解析时指定字符串的格式,使用http://momentjs.com/docs/#/parsing/string-format/

所以

var startDate = moment("12-Nov-2015").format("D-MMM-YYYY");

应该是

var startDate = moment("12-Nov-2015", "D-MMM-YYYY").format("D-MMM-YYYY");

有关日期解析不一致的信息,请参阅此处:http://dygraphs.com/date-formats.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多