JavaScript setUTCHours返回错误的日期

Pet*_*ver 3 javascript date

当我发现setUTCHours()返回错误的日期时,我一直在研究Date()对象。

例:

var myDate = new Date(2014, 0, 1);
myDate.setUTCHours(10);
myDate;
Run Code Online (Sandbox Code Playgroud)

鉴于此,我希望日期定为UTC 2014年1月1日星期三10:00:00,但是要落后一天。这是为什么?

这是我的http://jsfiddle.net/L5QEC/,并与其他一些基本方法进行了比较。

Rob*_*obG 6

日期对象使用的时间值为 UTC。它们还有一个偏移量,代表主机系统的时区偏移量。默认情况下,日期和时间将使用偏移量显示本地值。如果您使用的是UTC + 1,则偏移量将为-60,而new Date(2014, 0, 1)将为创建一个日期,2013-12-31T23:00:00Z并使用偏移量显示本地日期2014-01-01T00:00:00+0100

因此,如果将UTC小时更改为10,则UTC时间为:2013-12-31T10:00:00Z,而当地等效时间为2013-12-31T11:00:00+0100

因此,通过将UTC小时设置为10,可以有效地将前一天的本地时间设置为11:00(即UTC小时+ 1小时偏移)。

  • @MikeYoung-您将使用“新的Date(Date.UTC(2014,0,1))”。;-) (2认同)