Javascript .getHours() 无法正常工作

标签 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>

单步执行可确认当前原始仅几秒钟的时间间隔。

最佳答案

new Date 使用您的本地时区构造一个 Date 对象。小时偏移让你搞砸了。

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

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

关于Javascript .getHours() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37735631/

相关文章:

javascript - 使用 value 属性选择所有输入

javascript - 在沙盒中的 Nodejs 上运行客户端代码

javascript - 更新已实例化的图表数据

JavaScript:当存在单引号时,用于替换双大引号的正则表达式失败

javascript - 按多个字段过滤 Firebase

javascript - 图像上的简单 Javascript/CSS 文本叠加

javascript - 将 Rails 对象传递给 Javascript

javascript - 如何在更改文件后重新加载 nodejs 应用程序?

javascript - 返回 JSON 中的 Base64 编码缩略图还是只返回 URL?

javascript - 使用 KineticJS 绘制有根树