0

我有一个函数,将时间戳转换为时间:

function convertUnixTimeToTime(UNIX_timestamp) {
    var a = new Date(UNIX_timestamp);
    var fin_hour = String(a.getHours())
    if (fin_hour.length == 1) {
        fin_hour = '0' + fin_hour;
    }
    var fin_minutes = String(a.getMinutes())
    if (fin_minutes.length == 1) {
        fin_minutes = '0' + fin_minutes;
    }
    var time = fin_hour + ':' + fin_minutes;
    return time;
}

我正在本地测试我的应用程序,我的计算机的时移是 +4。当我尝试从节点应用程序获取当前时间时:

console.log('Current time is: ' + convertUnixTimeToTime(new Date().getTime()));

我得到了我现在的当地时间。正如我所料, Date().getTime() 应该以毫秒为单位返回绝对 UNIX 时间。我的函数 convertUnixTimeToTime() 没有指定任何时间偏移,这就是为什么我应该在没有任何偏移的情况下获得清晰的时间。为什么我会移动 +4 次?谢谢。

4

2 回答 2

2

getHoursandgetMinutes函数总是返回本地时间。这new Date(new Date().getTime())比其他任何事情都更令人困惑 - 它与new Date()- 它不会改变任何关于时区的内容。

要获得您要查找的内容,请使用getUTCHoursgetUTCMinutes

于 2012-10-21T15:36:37.100 回答
1

因为Date.getHours()并且Date.getMinutes()根据定义返回本地时间?

于 2012-10-21T15:33:12.730 回答