单击“确定”提示创建JavaScript计时器

时间:2015-03-08 15:56:10

标签: javascript

我需要创建一个计时器,并希望测量时间从单击确定开始直到用户单击确定停止。我只是想显示点击确定之间的时差。有没有人知道如何尽可能简单地做到这一点?虽然对你们大多数人来说这似乎很容易,但我真的很难找到它,感谢任何帮助

var canvas;
canvas = openGraphics();

alert( "Press \"OK\" to start the timer." );

alert( "Press \"OK\" to stop the timer." );


canvas.paint();

2 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/g74ssnku/1/

alert("ok start")
var starttime = Date.now();
alert("ok stop")
var stoptime = Date.now();
var seconds_between = (stoptime - starttime)/1000 ;
alert(seconds_between + " seconds");

只记录两次确认之间的时间,你应该没事。

答案 1 :(得分:1)

有一个OK按钮,或许:

<input type="button" id="the-button" value="OK">

在HTML之后的某个地方的脚本标记中(在文档的末尾是好的),有一个timer变量,最初是0

var timer = 0;

...并为按钮添加事件处理程序:

document.getElementById("the-button").addEventListener("click", function() {
    // ...we'll add more here in a moment...
}, false);

当用户点击该按钮时,如果timer0,则记录开始时间;如果没有,请报告差异并将其重置为0

document.getElementById("the-button").addEventListener("click", function() {
    var elapsed;
    if (timer === 0) {
        timer = Date.now();
    } else {
        elapsed = Date.now() - timer; // In milliseconds
        alert("Elapsed time: " + elapsed); // Or whatever you want to do with it
        timer = 0;
    }
}, false);

直播示例:

(function() {
  "use strict";
  var timer = 0;
  document.getElementById("the-button").addEventListener("click", function() {
    var elapsed;
    if (timer === 0) {
      timer = Date.now();
    } else {
      elapsed = Date.now() - timer; // In milliseconds
      alert("Elapsed time: " + elapsed);
      timer = 0;
    }
  }, false);
})();
<input type="button" id="the-button" value="OK">


注意:它使用addEventListener,所有现代浏览器(包括IE9)都支持attachEvent。要支持旧IE(例如IE8),您必须处理它使用addEventListener而不是Date.now这一事实。同样,if (!Date.now) { Date.now = function() { return +new Date(); }; } 不在IE8中,但可以为旧浏览器进行填充:

{{1}}