来自String的Javascript new Date对象,IE和FF上的结果不同

时间:2012-03-28 16:44:07

标签: javascript datetime

我正在尝试从字符串创建一个新的日期对象,如下所示:

var myDate= new Date("1985-01-01T00:00:00.000-06:00");

在FireFox上,它会提醒以下

  

1985年1月1日星期二00:00:00 GMT-0600(中央标准时间)

在IE8上,它会提醒以下

  

的NaN

为什么IE会以这种方式表现?

3 个答案:

答案 0 :(得分:5)

查看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

答案 1 :(得分:2)

尝试moment.js解决所有JS日期问题。

答案 2 :(得分:0)

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