JavaScript Date.UTC在不同的时区提供错误的日期

时间:2014-09-17 06:25:11

标签: javascript

我正在使用javascript Date.UTC,如下所示

var dt = new Date(Date.UTC(2014,09,17))

如果我将当地时区更改为,则会将结果显示为"Thu Oct 16 17:00:00 PDT 2014" UTC -08:00太平洋时间..

从实际日期起1天的给定日期是什么原因?

注意:结果因浏览器而异。在FF中给予"NaN undefined NaN",在IE中,Chrome给予"Thu Oct 16 17:00:00 PDT 2014"

1 个答案:

答案 0 :(得分:1)

Javascript Date对象使用UTC时间值。默认情况下,它们将返回日期和时间的本地值。

要访问UTC值,请使用getUTCFullYeargetUTCHours等UTC方法,或者只使用Date.prototype.toISOString,它以UTC时区返回ISO 8601格式的日期,或者使用Date.prototype.toUTCString以UTC时区返回依赖于实现的字符串:

var dt = new Date(Date.UTC(2014, 8, 17))

console.log(dt.toISOString()); // 2014-09-17T00:00:00.000Z
console.log(dt.toUTCString()); // Wed, 17 Sep 2014 00:00:00 GMT

请注意,您不应使用08之类的数字,因为某些人可能会将其解释为八进制数,而不是十进制数。