使用getUTCHours并在javascript中添加UTC偏移量

时间:2015-01-29 04:40:06

标签: javascript datetime

有人可以解释如何将UTC偏移添加到getUTCHours,以便返回正确的小时数吗?我知道现在是美国中部时间下午9点36分。我们目前正处于夏令时,因此我们的UTC偏移为-6。所以我希望如果我将偏移量添加到getUTCHours那么我应该得到21.而不是我得到-2。我做错了什么?

var offset=-6;
var dt = new Date();
var h=dt.getUTCHours();
var hour=h+offset;
console.log(hour);

2 个答案:

答案 0 :(得分:1)

它是UTC时间的第29位,因此小时数仅为4.比较日期对象的getDate与getUTCDate - 如果它们不同,则将小时数增加24。

var offset=-6;
var dt = new Date();
var h=dt.getUTCHours();
var hour=h+offset;
if(dt.getDate()!=dt.getUTCDate()){
    hours+=24;
}
console.log(hour);

答案 1 :(得分:1)

不完全确定你为什么要这样做,只是一个提示:

var dt = new Date(2015,0,1,21,30);
var ltm = ( dt.getUTCHours()*60 ) - dt.getTimezoneOffset();
var localTimeString = Math.floor(ltm / 60) + ":" + (ltm % 60);//21:30