REST API发送的日期格式在IE 11中无效



我目前正在对后端API进行一系列REST调用,我无法控制JSON中返回的日期格式。

正在发送的格式是这个

2018年11月21日星期三03:00:00.000Z

IE11认为这是一个无效的日期。我一直在使用moment.js获取当前日期和时间,并将其与API中发送的日期和时间进行比较。除了IE之外,它在任何地方都能完美工作。我一直在尝试Moment文档中的一切,但IE11认为我返回的所有内容都无效。

我将我的日期设置如下

var date = new Date("Wed, 21 Nov 2018 03:00:00.000Z");  

更新:我还尝试使用即时设置日期

var date = "Wed, 21 Nov 2018 03:00:00.000Z"
date = moment(d, "YYYY-MM-DD HH:mm:ss").toDate();

我尝试了许多不同的格式,但所有格式都返回无效。

根据IE,这就是返回为Invalid的内容。我曾尝试先将日期转换为moment对象,然后再转换为有效的日期格式,但似乎也不起作用。

我可以得出结论,IE不喜欢日期结束时的.000Z。如果我把它关掉,它会起作用,但我所有的时间都在GMT。

您在momentJS构造函数中输入的格式YYYY-MM-DD HH:mm:ss与您实际输入的日期字符串没有相似之处。。。你正在告诉我们,期待类似"2018-11-16 17:10:02"的事情。我不确定,也许你已经将其与稍后想要输出的格式混淆了,因为它显然甚至与示例数据不匹配。

检查http://momentjs.com/docs/#/parsing/string-format/并选择合适的令牌以匹配您提供的日期格式。以下是一个适用于示例中给定日期的示例:

var d = "Wed, 21 Nov 2018 03:00:00.000Z";
var m = moment(d, "ddd, DD MMM YYYY HH:mm:ss.SZ"); //parse the date based on the format tokens given
console.log(m.format("YYYY-MM-DD HH:mm:ss")); //output the date in a different format
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

最新更新