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

使用getUTCHours并在javascript中添加UTC偏移量,javascript,datetime,Javascript,Datetime,有人能解释一下如何将UTC偏移量添加到getUTCHours,以便它返回正确的小时数吗?我知道现在是MST时间晚上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); 这是UTC时间的第29个小时,

有人能解释一下如何将UTC偏移量添加到getUTCHours,以便它返回正确的小时数吗?我知道现在是MST时间晚上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);

这是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);

不太清楚你为什么要这样做,只是一个提示:

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

非常感谢!工作得很有魅力。