Internet Explorer中的Javascript无效日期错误

时间:2012-10-26 17:22:31

标签: javascript internet-explorer date

这里的javascript比较简单,不知道为什么IE讨厌我(对待别人我想如何对待我)。

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

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

告诉我http://jsfiddle.net/k6yD6/

6 个答案:

答案 0 :(得分:47)

给予日期构造函数should be an RFC2822 or ISO 8601 formatted date的字符串。在你的例子中它不是。请尝试以下方法:

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

或使用alternate constructor

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

答案 1 :(得分:9)

IE似乎不支持数字字符串中的毫秒和月份。试试这个:

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

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

答案 2 :(得分:2)

我在使用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

答案 3 :(得分:1)

要在IE中工作,日期应采用适当的格式。我使用以下格式修复了同样的问题:

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

答案 4 :(得分:1)

使用

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

这也将在IE中起作用。

答案 5 :(得分:0)