如何在JS中使用date.now()创建秒表?

时间:2014-10-11 17:47:50

标签: javascript timer

我想知道如何使用date.now创建一个简单的倒计时器。 我想使用date.now()来查找开始时间和date.now()以获取当前时间并减去两个以获取javascript中的已用时间?

2 个答案:

答案 0 :(得分:1)

我没有看到Winestone的答案,所以我在jsFiddle做了一个例子。

简而言之:

var start=Date.now(),
stop=Date.now(),
diff=stop-start;

您可能需要的所有剩余小费用于以毫秒为单位格式化时间,并在开始和停止之间获得所需的延迟。

答案 1 :(得分:0)

这是我刚刚建立的,按"运行代码段"在底部测试它。如果您需要进一步解释,请注释。



var prevTime, stopwatchInterval, elapsedTime = 0;

var updateTime = function () {
  var tempTime = elapsedTime;
  var milliseconds = tempTime % 1000;
  tempTime = Math.floor(tempTime / 1000);
  var seconds = tempTime % 60;
  tempTime = Math.floor(tempTime / 60);
  var minutes = tempTime % 60;
  tempTime = Math.floor(tempTime / 60);
  var hours = tempTime % 60;
  
  var time = hours + " : " + minutes + " : " + seconds + "." + milliseconds;
  
  $("#time").text(time);
};

$("#startButton").click(function () {
  if (!stopwatchInterval) {
    stopwatchInterval = setInterval(function () {
      if (!prevTime) {
        prevTime = Date.now();
      }
      
      elapsedTime += Date.now() - prevTime;
      prevTime = Date.now();
      
      updateTime();
    }, 50);
  }
});

$("#pauseButton").click(function () {
  if (stopwatchInterval) {
    clearInterval(stopwatchInterval);
    stopwatchInterval = null;
  }
  prevTime = null;
});

$("#resetButton").click(function () {
  $("#pauseButton").click();
  elapsedTime = 0;
  updateTime();
});

$(document).ready(function () {
  updateTime();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Time: <span id="time"></span><br>

<button id="startButton">Start</button>
<button id="pauseButton">Pause</button>
<button id="resetButton">Reset</button>
&#13;
&#13;
&#13;