Javascript .getHours()无法正常工作

时间:2016-06-09 20:32:59

标签: javascript

为什么在比较两个仅以秒为单位的日期时,我从.getHours()得到零,而不是“18”?

以下是代码:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <span id="test">starting...</span>
    <script>
        var a = document.getElementById("test");

        window.setInterval(myHourCheck, 1000);

        var originalDate = new Date();

        function myHourCheck() {
            var current = new Date();
            var original = originalDate;
            var timeDelta = current.getTime() - original.getTime();

            var hours = new Date(timeDelta).getHours();

            a.innerHTML = hours;
        }
    </script>
</body>
</html>

单步确认只有几秒钟currentoriginal分开。

1 个答案:

答案 0 :(得分:1)

new Date使用您的本地时区构造Date对象。小时偏移正在搞砸你。

您可以使用方法的UTC版本来解决这个问题:

new Date(0).getUTCHours() === 0