使用Javascript无效的日期错误在Internet Explorer中(Javascript

2019-07-02 17:33发布

相对简单的JavaScript在这里,不知道为什么IE浏览器恨我(你要如何处理,我想对待别人)。

var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);

这适用于Chrome和FF,但IE浏览器输出“无效的日期”

小提琴我: http://jsfiddle.net/k6yD6/

Answer 1:

给予日期构造函数的字符串应该是RFC2822或ISO 8601格式的日期 。 在你的例子事实并非如此。 尝试以下方法:

new Date("2012-11-02T19:30:00.000Z");

或者使用可替换的构造 :

new Date(2012, 11, 2, 19, 30, 0)


Answer 2:

IE浏览器似乎不支持毫秒和几个月在数字串。 试试这个:

new Date("November 2, 2012 19:30:00");

要么

new Date(year, month, day, hours, minutes, seconds, milliseconds)


Answer 3:

我有与Internet Explorer相同的问题。 这就是我如何格式化日期和时间开始,

function formatDateTime(date, formatString = 'MM/DD/YYYY hh:mm A') {
  return moment(new Date(date)).format(formatString);
}

问题是与new Date() 我只是删除它,因为它已经是一个UTC日期。 因此,它是正义的,

return moment(date).format(formatString);

这在所有的浏览器包括IE为我工作。



Answer 4:

要在工作的IE ,日期应该是在正确的格式。 我用下面的格式固定的同样的问题:

var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day


Answer 5:

使用

var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);

这将在IE工作了。



Answer 6:

看看Mozilla的最新参考。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

别客气!



文章来源: Javascript Invalid Date Error in Internet Explorer