这里的javascript比较简单,不知道为什么IE讨厌我(对待别人我想如何对待我)。
var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);
这适用于Chrome和FF,但IE输出“无效日期”
答案 0 :(得分:47)
给予日期构造函数should be an RFC2822 or ISO 8601 formatted date的字符串。在你的例子中它不是。请尝试以下方法:
new Date("2012-11-02T19:30:00.000Z");
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)
查看mozilla的日期参考。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date
欢迎你!