为什么在比较两个仅以秒为单位的日期时,我从.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>
单步确认只有几秒钟current
与original
分开。
答案 0 :(得分:1)
new Date
使用您的本地时区构造Date对象。小时偏移正在搞砸你。
您可以使用方法的UTC版本来解决这个问题:
new Date(0).getUTCHours() === 0