在比较仅以秒为单位分隔的两个日期时,为什么我从 .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/