JavaScript时钟未显示移动设备上的当前时间

时间:2016-05-20 18:31:04

标签: javascript mobile timer clock

我有这个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 ,我意识到即使在桌面设备上,时钟也不会更新。所以整个代码都有问题。

3 个答案:

答案 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

的链接