我想从字符串创建一个新的Date对象如下不同的结果:的JavaScript字符串新的Date对象,在IE和FF
var myDate= new Date("1985-01-01T00:00:00.000-06:00");
在Firefox,它会提醒以下
星期二1985年1月1日00:00:00 GMT-0600(中部标准时间)
在IE8,它会提醒以下
NaN的
为什么IE浏览器出毛病了这条路?
我想从字符串创建一个新的Date对象如下不同的结果:的JavaScript字符串新的Date对象,在IE和FF
var myDate= new Date("1985-01-01T00:00:00.000-06:00");
在Firefox,它会提醒以下
星期二1985年1月1日00:00:00 GMT-0600(中部标准时间)
在IE8,它会提醒以下
NaN的
为什么IE浏览器出毛病了这条路?
展望documetation正确的格式如下:
new Date(year, month, day [, hour, minute, second, millisecond ])
所以,如果你运行下面的代码会被罚款在所有浏览器:
var myDate= new Date(1985, 01, 01 , 00, 06, 00, 0000000000);
myDate // you get the right date in all browsers IE8/7 included
这将不会得到正确的日期,因为ie8计数月从'0'而不是'1',所以'新日期(1985,01,01,06,00,000000000000)'得到2月不是6月,你需要减少1当你过去的月份参数 – 2014-04-10 06:37:53
尝试moment.js为您所有的JS日期困境。
你可以给出如何使用moment.js来回答问题的代码示例吗? – JustinStolle 2013-09-02 21:06:48
@JustinStolle var myDate = moment('1985-01-01T00:00:00.000-06:00'); – dontGoPlastic 2013-09-03 00:43:01
的格式不被支持IE浏览器。也许你可以尝试使用setUTCHours
:
var rawdate = new Date("1985/01/01 00:00:00 GMT");
console.log(rawdate);
//=> in my timezone: Tue Jan 1 01:00:00 UTC+0100 1985
console.log(rawdate.setUTCHours(-6));
//=> in my timezone that results in: Mon Dec 31 19:00:00 UTC+0100 1984
或者,也许你的意思是(在IE的作品,而不是在其他浏览器)?
var rawdate = new Date("1985/01/01 00:00:00 GMT-6");
//=> Tue Jan 1 07:00:00 UTC+0100 1985
的[在IE,NAN JavaScript的日期 - Firefox和铬OK]
可能重复(http://stackoverflow.com/questions/2182246/javascript-dates-in-ie-nan-firefox-chrome-ok ) – 2012-03-28 16:46:39
因为IE8不支持这种格式。就那么简单。 – BalusC 2012-03-28 16:47:05
嗨balusC,什么是最简单的方式创建一个与字符串为IE浏览器的日期? – user1195192 2012-03-28 16:52:37