20

是否存在 getUTCFullYear() 与 javascript 中的 getFullYear() 不同的真实案例?

这同样适用于:

getUTCMonth() 与 getMonth()

getUTCDate() 与 getDate()

我在这里错过了什么吗?

编辑:

请参阅getUTCFullYear() 文档

是否存在 getUTCFullYear() 与 javascript 中的 getFullYear() 不同的真实案例?

4

4 回答 4

12

getUTC...() 方法返回 UTC 时区的日期和时间,而其他函数返回运行脚本的计算机的本地时区的日期和时间。

有时将日期和时间放在本地时区会很方便,有时将日期和时间放在独立于计算机本地时区的时区会很方便。

在 JavaScript 中有很多方法可以在时区之间进行转换,但是它们很麻烦。

所以,我想这只是为了方便。

于 2009-08-18T07:51:19.670 回答
11

是的,在新的一年左右。如果您的 TZ 为 -12,则该值在 12 月 31 日、凌晨 12:00 和午夜之间有所不同。

于 2009-08-18T07:59:27.063 回答
7

您列出的功能基本上报告了不同时区的时间,因此如果您住在格林威治子午线以西,则在 12 月 31 日晚上getUTCFullYear()会有不同的情况。getFullYear()

例如,在您当地的时区,时间可能是晚上 9 点,但在 UTC 中,它可能已经是 1 月 1 日凌晨 2 点,所以:

var d = new Date();
d.getFullYear() == 2009  //True
d.getUTCFullYear() == 2010  //True

这是令人困惑的,因为这些方法对Date对象进行操作而不是报告当前的 UTC 时间。但是该方法说,如果这是这里的时间,那么它在 UTC 时区是哪一年。因此,这两种方法报告的年份中的 364.75 天将是相同的。

于 2009-08-18T08:00:51.023 回答
1

从 12 月 31 日到 1 月 1 日,这发生在世界不同地区的不同时间。因此,UTC 时间将不同于例如新西兰的当地时间 - 因此在某些时候 getFullYear() 将与 getUTCFullYear() 相差 1。

于 2009-08-18T08:00:12.693 回答