如何以适当的方式计算秒,分钟,小时和天?

时间:2017-03-06 16:24:19

标签: javascript counter

我想写一个计数器,每秒,每分钟,每小时和每天计算我。它不应该从0开始,而是从2分钟开始。现在我有以下代码,但它似乎并不正确。我是初学者并试图了解JS。提前感谢您的帮助和帮助!

<!doctype html>
<html>
  <head>
    <title>Counter</title>
    <script>
      start=new Date().getTime()-120000;
      function updateCounter() {
        var dif=new Date().getTime()-start;
        setTimeout(updateCounter, 1000-(dif%1000));
        var sec=Math.floor(dif/1000);
        var min=Math.floor(sec/60);
        var hou=Math.floor(min/60);
        var day=Math.floor(hou/24);
        sec %= 60;
        if (sec<10) {
          sec="0"+sec;
        }
        document.getElementById("counter").innerHTML=day+":"+hou+":"+min+":"+sec;
      }
    </script>
  </head>
  <body onload="updateCounter();">
    <p id="counter"></p>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

抱歉,我不知道我不能把代码放回评论的回复中。所以这是我改进的代码。问题是,我不知道如何从24小时切换到1天。现在它计算1day24h0m0sec。但它应该是1day0h0m0sec。

<!doctype html>
<html>
  <head>
    <title>Counter</title>
    <script>
      var start=new Date().getTime()-86400000;
      function updateCounter() {
        var dif=new Date().getTime()-start;
        setTimeout(updateCounter, 1000-(dif%1000));
        var sec=Math.floor(dif/1000);
        var min=Math.floor(sec/60);
        var hou=Math.floor(min/60);
        var day=Math.floor(hou/24);
        sec %= 60;
        if (sec<10) {
          sec="0"+sec;
        }
        min %= 60;
        if (min<10) {
          min="0"+min;
        }
        hou %= 60;
        if (hou<10) {
          hou="0"+hou;
        }
        day %= 24;
        if (day<10) {
          day="0"+day;
        }
        document.getElementById("counter").innerHTML=day+":"+hou+":"+min+":"+sec;
      }
    </script>
  </head>
  <body onload="updateCounter();">
    <p id="counter"></p>
  </body>
</html>