如何使内联 javascript 每秒执行一次

神圣爆破

我有内联 javascript,它是一个时钟,但时钟不会刷新,这使它在页面加载的第二秒停止。有人请帮我修好这个时钟。

function showTime() {
  let date = new Date();
  let h = date.getHours(); // 0 - 23
  let m = date.getMinutes(); // 0 - 59
  let s = date.getSeconds(); // 0 - 59
  let session = "AM";

  if (h == 0) {
    h = 12;
  }

  if (h > 12) {
    h = h - 12;
    session = "PM";
  }

  h = (h < 10) ? "0" + h : h;
  m = (m < 10) ? "0" + m : m;
  s = (s < 10) ? "0" + s : s;

  let time = h + ":" + m + ":" + s + " " + session;
  document.getElementById("MyClockDisplay").innerHTML = time;
}
setTimeout(showTime, 1000);
<div id="MyClockDisplay" class="">clock</div>

英式英语

setInterval是你所追求的。它将在每个时间间隔连续运行,直到您使用 clearInterval() 手动停止它。因此,您应该为其分配一个变量。

let timeInterval = setInterval(showTime, 1000);
// if ever you want to stop or pause the clock, you can use:
// clearInterval(timeInterval)

function showTime() {
  let date = new Date();
  let h = date.getHours(); // 0 - 23
  let m = date.getMinutes(); // 0 - 59
  let s = date.getSeconds(); // 0 - 59
  let session = "AM";

  if (h == 0) {
    h = 12;
  }

  if (h > 12) {
    h = h - 12;
    session = "PM";
  }

  h = (h < 10) ? "0" + h : h;
  m = (m < 10) ? "0" + m : m;
  s = (s < 10) ? "0" + s : s;

  let time = h + ":" + m + ":" + s + " " + session;
  document.getElementById("MyClockDisplay").innerHTML = time;
}
let timeInterval = setInterval(showTime, 1000);
// if ever you want to stop or pause the clock, you can use:
// clearInterval(timeInterval)
<div id='MyClockDisplay'></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章