setInterval没有更新我的时钟时间.手动刷新页面时会显示和刷新时间



我每1000毫秒有一个setInterval,但时钟不会刷新。我必须刷新页面,让时钟显示正确的时间。

function InitClock() {
setInterval(function () {
var mytime = getDateTime();
console.log(mytime);
document.getElementById("divClock").innerHTML = mytime;
}, 1000);
}

我不太清楚发生了什么事。

如果函数getDateTime();没有抛出某种错误,请检查控制台。还要检查是否在某个地方实际调用了函数InitClock();。。。请参阅下面的代码,该代码应该使用new Date();对象。

<html>
<script>
function InitClock() {
setInterval(function () {
var mytime = new Date();
console.log(mytime);
document.getElementById("date").innerHTML = mytime;
}, 1000);
}
InitClock();
</script>
<body>
<div id="date"></div>
</body>
</html>

getDateTime不是内置的Javascript函数。您需要实例化一个Javascript Date对象,并使用它的方法来获取日期信息。您可以在Mozilla开发者网络上找到有关Date对象的更多信息,Mozilla开发者网络是Javascript的最佳资源之一。您可以执行以下操作:

function InitClock() {
setInterval(function() {
var date = new Date(),
mytime = date.getTime();
console.log(mytime);
document.getElementById("divClock").innerHTML = mytime;
}, 1000);
}

在运行setInterval:之前,我会通过缓存时钟的DOM元素来对其进行一点优化

function InitClock() {
var clockEl = document.getElementById("divClock");
setInterval(function() {
var date = new Date(),
mytime = date.getTime();
console.log(mytime);
clockEl.innerHTML = mytime;
}, 1000);
}

最新更新