javascript - 为什么 element.innerHTML = 带日期信息的字符串不起作用?

标签 javascript setinterval

我在使用 setInterval() 时遇到了这个问题:

var h1 = document.getElementById("demo");

function updateTime(d) {

  h1.innerHTML = "numero del mese: " + d.getDate() +
    "<br>numero della settimana: " + d.getDay() +
    "<br>anno: " + d.getFullYear() +
    "<br>mese: " + d.getMonth() +
    "<br>ore: " + d.getHours() +
    "<br>minuti: " + d.getMinutes() +
    "<br>secondi: " + d.getSeconds();
}

setInterval(updateTime.bind(null, new Date()), 1000);

所有这些都可以正常工作,但只工作一次就什么也没有了。 为什么?

最佳答案

new Date() 创建一个 Date 对象,表示该对象的创建时间

您调用它一次,然后在每秒显示该时间(不会改变)的间隔中使用它。

如果您想获取当前时间,那么您需要在您在时间间隔内调用的函数内部创建一个新的 Date 对象。

例如:

setInterval(function () { updateTime(new Date()); }, 1000);

关于javascript - 为什么 element.innerHTML = 带日期信息的字符串不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45241529/

相关文章:

javascript - new Date() 在 JavaScript 中表现不一致

第一次更改颜色后,用于轮廓颜色闪烁的 JavaScript setInterval 不起作用

javascript - 为什么clearinterval会改变这段代码中的内容?

javascript - TS TypeScript SetInterval - 无法从计时器目标函数内部访问函数

javascript - 为什么在 console.log 之后没有调用 Javascript

javascript - x 轴标签未显示在 d3 散点图中

javascript - 在(部分) undefined object 中分配嵌套值

javascript - Javascript 中图像下落(图像下落太快)

javascript - 如何使用 componentWillUnmount 删除 React.js 中的 setInterval

javascript - 如何在 Firefox 扩展中使用 nsITimer?