gpt4 book ai didi

javascript - JavaScript 中的数字时钟

转载 作者:行者123 更新时间:2023-12-03 01:44:44 25 4
gpt4 key购买 nike

该代码是用于制作数字时钟的,在 showTime 函数中放置 setTimeout 函数有什么用,以及设置 textcontentInnertext

function showTime(){
var date = new Date();
var h = date.getHours();// 0 - 23
var m = date.getMinutes(); // 0 - 59
var s = date.getSeconds(); // 0 - 59
var 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;

var time = h + ":" + m + ":" + s + " " + session;
document.getElementById("MyClockDisplay").innerText = time;
document.getElementById("MyClockDisplay").textContent = time;

setTimeout(showTime, 1000);

}

showTime();
<div id="MyClockDisplay" class="clock"></div>

最佳答案

您需要在showTime底部调用setTimeout,以便每次调用showTime都会将该函数排队以在1内再次运行第二个 - 当运行时,将在一秒后再次对该函数进行排队,依此类推。让函数使用 setTimeout 递归调用自身是使用 setInterval 的替代方法。

textContent 通常优于 innerText - 请参阅 The poor, misunderstood innerText ,但如果你只是分配而不是获取,那就没有多大关系了。 innerHTML 在这里不合适,因为您分配的是文本,而不是HTML 标记

使用 setInterval 而不是递归 setTimeout 看起来像这样,完成完全相同的事情:

function showTime() {
var date = new Date();
var h = date.getHours(); // 0 - 23
var m = date.getMinutes(); // 0 - 59
var s = date.getSeconds(); // 0 - 59
var 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;

var time = h + ":" + m + ":" + s + " " + session;
document.getElementById("MyClockDisplay").innerText = time;
document.getElementById("MyClockDisplay").textContent = time;
}

showTime();
setInterval(showTime, 1000);
<div id="MyClockDisplay" class="clock"></div>

关于javascript - JavaScript 中的数字时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50690499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com