Html 设置超时不';我不在这个时钟项目中工作
由于某些原因,超时不起作用,时钟数与最初启动时保持不变。我尝试了Html 设置超时不';我不在这个时钟项目中工作,html,Html,由于某些原因,超时不起作用,时钟数与最初启动时保持不变。我尝试了setInterval(),但也没有成功 代码如下,或在此处查看: //变量 var hourN=document.getElementById(“hoursD”); var minuteN=document.getElementById(“minutesD”); var secondN=document.getElementById(“secondsD”); 变量小时、分钟、秒=0; 变量日期=新日期(); //功能 函数刷新()
setInterval()
,但也没有成功
代码如下,或在此处查看:
//变量
var hourN=document.getElementById(“hoursD”);
var minuteN=document.getElementById(“minutesD”);
var secondN=document.getElementById(“secondsD”);
变量小时、分钟、秒=0;
变量日期=新日期();
//功能
函数刷新(){
hour=date.getHours();
分钟=日期。getMinutes();
秒=date.getSeconds();
小时>12?小时=小时-12:小时;
hourN.innerText=小时;
minuteN.innerText=分钟;
second n.innerText=second;
var t=setTimeout(函数(){refresh();},1000);
}
刷新();
: :
日期
仍保留初始值。
你应该在刷新中更新它
// Variables
var hourN = document.getElementById("hoursD");
var minuteN = document.getElementById("minutesD");
var secondN = document.getElementById("secondsD");
var hour, minute, second = 0;
var date = new Date();
// Functions
function refresh() {
date = new Date();
hour = date.getHours();
minute = date.getMinutes();
second = date.getSeconds();
hour > 12 ? hour = hour - 12 : hour;
hourN.innerText = hour;
minuteN.innerText = minute;
secondN.innerText = second;
var t = setTimeout(function(){ refresh(); }, 1000);
}
refresh();
顺便说一下
setInterval
更适合此功能。您必须在此处使用setTimeout
。您的css也会从视口中删除h1。您还必须更新刷新
函数中的日期
值
// Variables
var hourN = document.getElementById("hoursD");
var minuteN = document.getElementById("minutesD");
var secondN = document.getElementById("secondsD");
var hour, minute, second = 0;
// Functions
function refresh() {
var date = new Date();
hour = date.getHours();
minute = date.getMinutes();
second = date.getSeconds();
hour > 12 ? hour = hour - 12 : hour;
hourN.innerText = hour;
minuteN.innerText = minute;
secondN.innerText = second;
}
setInterval(function(){ refresh(); }, 1000);
将
date
变量移动到refresh()
函数中,使其每秒获取一次当前日期。否则它只会返回用户第一次加载脚本时的日期
另外,我会将计时器移到refresh()
函数之外,并使用setInterval
调用它
以下是更新的代码:
var hourN = document.getElementById("hoursD");
var minuteN = document.getElementById("minutesD");
var secondN = document.getElementById("secondsD");
var hour, minute, second = 0;
// Functions
function refresh() {
var date = new Date();
hour = date.getHours();
minute = date.getMinutes();
second = date.getSeconds();
hour > 12 ? hour = hour - 12 : hour;
hourN.innerText = hour;
minuteN.innerText = minute;
secondN.innerText = second;
}
refresh();
setInterval(function(){ refresh(); }, 1000)
工作!谢谢@欢迎光临:)编码快乐!如果答案或其他答案解决了您的问题,您可以接受它,以便其他人能够在遇到相同情况时找到解决方案。:)另请参见如何接受答案:meta.stackexchange.com/q/5234/785217
var hourN = document.getElementById("hoursD");
var minuteN = document.getElementById("minutesD");
var secondN = document.getElementById("secondsD");
var hour, minute, second = 0;
// Functions
function refresh() {
var date = new Date();
hour = date.getHours();
minute = date.getMinutes();
second = date.getSeconds();
hour > 12 ? hour = hour - 12 : hour;
hourN.innerText = hour;
minuteN.innerText = minute;
secondN.innerText = second;
}
refresh();
setInterval(function(){ refresh(); }, 1000)