Javascript New Date()/ UTC - GMT跨浏览器

时间:2014-07-01 14:34:33

标签: javascript date datetime

问题: IE 10中的新Date()的不同格式 - IE 11。 使用Javascript:

IE 11 / Chrome:

var m = new Date("2014-07-04T04:00:00"); 
console.log(m); // Fri Jul 04 2014 06:00:00 GMT+0200 (W. Europe Summer Time) 

IE 10:

var m = new Date("2014-07-04T04:00:00"); 
console.log(m); // Fri Jul 4 04:00:00 UTC+0200 2014 

可以使用一个戒指来统治它们吗?

2 个答案:

答案 0 :(得分:7)

您不应该将字符串传递给new Date,特别是出于这个原因。

相反,您应该为其提供单独的参数:

new Date(2014, 6, 4, 4, 0, 0); // remember months are zero-based

或者,如果您想以UTC格式给出时间,请尝试:

var d = new Date();
d.setUTCFullYear(2014);
d.setUTCMonth(6);
d.setUTCDate(4);
d.setUTCHours(4);
d.setUTCMinutes(0);
d.setUTCSeconds(0);
d.setUTCMilliseconds(0);

当然,您可以执行此功能。

或者,如果您有时间戳,则可以执行以下操作:

var d = new Date();
d.setTime(1404446400000);

答案 1 :(得分:0)

稍微完成答案。给出的UTC示例是危险的,因为您在5月31日(或者每月的第31天)执行以下操作:

var d = new Date();
d.setUTCFullYear(2014);
d.setUTCMonth(5);
d.setUTCDate(4);
d.setUTCHours(4);
d.setUTCMinutes(0);
d.setUTCSeconds(0);
d.setUTCMilliseconds(0);

它将产生" 2014年7月4日04:00:00"。

所以更喜欢Date.UTC功能:

new Date(Date.UTC(2014, 5, 4, 4, 0, 0, 0))

它将产生" 2014年6月4日04:00:00"。