JavaScript Date.UTC 在不同的时区给出错误的日期

JavaScript Date.UTC giving wrong date in different time zone

本文关键字:时区 错误 日期 出错 Date UTC JavaScript      更新时间:2023-09-26

我正在使用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"

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

要访问 UTC 值,请使用 UTC 方法,如 getUTCFullYeargetUTCHours 等,或者只使用 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这样的数字,因为某些人可能会将其解释为八进制数,而不是十进制。