这里相对简单的 javascript,不知道为什么 IE 讨厌我(我想如何对待别人你想被对待)。
var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);
这适用于 Chrome 和 FF,但 IE 输出“无效日期”
摆弄我这个:http: //jsfiddle.net/k6yD6/
这里相对简单的 javascript,不知道为什么 IE 讨厌我(我想如何对待别人你想被对待)。
var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);
这适用于 Chrome 和 FF,但 IE 输出“无效日期”
摆弄我这个:http: //jsfiddle.net/k6yD6/
给日期构造函数的字符串应该是 RFC2822 或 ISO 8601 格式的日期。在你的例子中它不是。尝试以下操作:
new Date("2012-11-02T19:30:00.000Z");
或使用替代构造函数:
new Date(2012, 11, 2, 19, 30, 0)
IE 似乎不支持数字字符串中的毫秒和月。尝试这个:
new Date("November 2, 2012 19:30:00");
或者
new Date(year, month, day, hours, minutes, seconds, milliseconds)
利用
var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);
这也适用于 IE。
我在使用 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在内的所有浏览器中都适用于我。
要在 中工作IE
,日期应采用正确的格式。我使用以下格式解决了同样的问题:
var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day
var time = new Date("2021-12-01 17:02:12");
if(isNaN(time))
{
time= new Date(date.replace(/ /g,'T')+'.000Z');
}