【问题标题】:I work on digital clock project with Javascript and I have this issue, I want to call function in every 1 second but, setinterval doesnt work我使用 Javascript 处理数字时钟项目,我有这个问题,我想每 1 秒调用一次函数,但是 setinterval 不起作用
【发布时间】:2021-06-07 09:15:31
【问题描述】:

这是我的 javascript 代码,我没有包含 HTML 文件,因为一切都很简单。 时间显示在网页上,但秒不起作用

const hour = document.querySelector(".hour");
const minute = document.querySelector(".minute");
const seconds = document.querySelector(".seconds");
const timeZone = document.querySelector(".timeZone");

const date = new Date();

setInterval(setTime, 1000);

function setTime() {
  hour.innerHTML = date.getHours() + " : ";
  minute.innerHTML = date.getMinutes() + " : ";
  seconds.innerHTML = date.getSeconds();
}

setTime();

【问题讨论】:

  • 您使用的是静态Date,它的值不会改变。您需要在 setTime() 方法中创建一个新的 Date 并获取它的小时、分钟和秒

标签: javascript function setinterval


【解决方案1】:

正如 cmets 所提到的,您需要将您的日期对象移动到您的区间函数中。 否则当你实例化日期对象时,它将是静态的,秒数不会增加。

这是它的工作原理。

const hour = document.querySelector(".hour");
const minute = document.querySelector(".minute");
const seconds = document.querySelector(".seconds");
const timeZone = document.querySelector(".timeZone");

debugger

setInterval(setTime, 1000);

function setTime() {
  let date = new Date();
  hour.innerHTML = date.getHours() + " : ";
  minute.innerHTML = date.getMinutes() + " : ";
  seconds.innerHTML = date.getSeconds();
}

setTime()
<span class="hour"></span>
<span class="minute"></span>
<span class="seconds"></span>
<span class="timeZone"></span>

【讨论】:

  • 非常感谢
猜你喜欢
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 2016-09-15
  • 1970-01-01
相关资源
最近更新 更多