【问题标题】:JavaScript clock not showing current time on mobile devicesJavaScript 时钟未在移动设备上显示当前时间
【发布时间】:2016-09-03 02:53:46
【问题描述】:

我得到了这个 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+"";
}
&lt;span id="clock"&gt;&lt;/span&gt;

非常感谢您的帮助!

编辑:感谢mdickin,我意识到即使在桌面上时钟也不会更新。所以整个代码有问题。

【问题讨论】:

  • 当你说它冻结时,你的意思是页面变得没有响应吗?或者你的意思是时间永远不会更新?因为我看不到即使在桌面上时间也会更新的任何方式
  • 时间没有更新,你是对的。它甚至在桌面上也不会更新,我的错。

标签: javascript mobile timer clock


【解决方案1】:

是的,您可以使用 setInterval,它会定期(以毫秒为单位)运行一个函数。

function setTime()
{
    document.getElementById("clock").innerHTML = GetTime();
}

setInterval(setTime,1000);

您可以更改毫秒数以适应,具体取决于您想要的准确度...但我怀疑您是否需要担心无论哪种方式都超过一秒。

这里是关于setInterval and setTimeout的更多信息的链接

【讨论】:

    【解决方案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
    &lt;span id="clock"&gt;&lt;/span&gt;

    【讨论】:

      【解决方案3】:

      这是我在 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的链接

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-30
        • 2021-04-11
        • 1970-01-01
        • 2020-10-05
        • 1970-01-01
        相关资源
        最近更新 更多