我有这个JavaScript代码在我的网站上显示当前时间,适用于桌面,但它不适用于移动设备
它在用户访问页面时冻结
是否有可能实现这一目标?像每秒刷新脚本以显示当前时间或任何其他解决方案?
document.getElementById("clock").innerHTML = GetTime();
function GetTime(){
var d = new Date();
var nhour = d.getHours(),nmin=d.getMinutes();
if (nmin<=9) {
nmin = "0" + nmin
}
return nhour+":"+nmin+"";
}
<span id="clock"></span>
非常感谢您的帮助!
编辑:感谢 mdickin ,我意识到即使在桌面设备上,时钟也不会更新。所以整个代码都有问题。
答案 0 :(得分:2)
是的,您可以使用setInterval,它以固定间隔(以毫秒为单位)运行函数。
function setTime()
{
document.getElementById("clock").innerHTML = GetTime();
}
setInterval(setTime,1000);
你可以改变适合的毫秒数,具体取决于你想要的准确程度......但是我怀疑你需要担心不管是哪一种都是。
以下链接提供了有关setInterval and setTimeout
的更多信息答案 1 :(得分:2)
使用setInterval
每秒运行GetTime()
功能:
document.getElementById("clock").innerHTML = GetTime();
function GetTime(){
var d = new Date();
var nhour = d.getHours(),nmin=d.getMinutes();
if (nmin<=9) {
nmin = "0" + nmin
}
return nhour+":"+nmin+"";
}
setInterval(GetTime, 1000); // run GetTime every 1000ms
<span id="clock"></span>
答案 2 :(得分:1)
这是我在codepen中编写的一个简单程序,用于创建实时JS计时器。基本上你需要做的就是在setTimeout
函数内调用函数,并以毫秒为单位提供频率。
function startTimer() {
var today = new Date();
var hours = today.getHours();
var mins = today.getMinutes();
var sec = today.getSeconds();
mins = checkTime(mins);
sec = checkTime(sec);
document.getElementById('timer').innerHTML =
hours + ":" + mins + ":" + sec;
var t = setTimeout(startTimer, 100);
}
function checkTime(i) {
if (i < 10) {
i = "0" + i
};
return i;
}
<body onLoad="startTimer()">
<div id="timer"></div>
</body>
以下是指向codepen
的链接