使用Javascript计算时间

时间:2009-09-27 02:49:51

标签: javascript time

我如何计算使用javascript在2个事件之间经过多长时间?比如,到毫秒?

6 个答案:

答案 0 :(得分:13)

Date个对象执行算术运算时,会将它们隐式转换为毫秒(自1970-01-01 00:00:00 UTC开始),因此您需要做的就是减去Date当操作从操作结束时创建的Date开始时创建。

var start = new Date();
doSomeHeavyWork();
var end = new Date();
var millisecondsElapsed = end - start;

答案 1 :(得分:11)

最简单的方法。

console.time("timer name")
console.timeEnd("timer name")

这将以毫秒为单位输出时间到控制台。

答案 2 :(得分:4)

这很难做到。

var start = new Date();
// Do things here
var finish = new Date();
var difference = new Date();
difference.setTime(finish.getTime() - start.getTime());
alert( difference.getMilliseconds() );

答案 3 :(得分:2)

好吧,你可以使用firebug(firefox插件)来测试你的功能。查看此文章:benchmark javascript funcions

答案 4 :(得分:2)

如何制作可重复使用的计时器对象?

用法:

// event 1
document.getElementById('elId').onclick = function () {
  timer.start('myTimer1');
};

// event 2
document.getElementById('otherElement').onclick = function () {
  alert(timer.stop('myTimer1')); // alerts the time difference in ms
};

实现:

var timer = (function () {
  var startTimes = {}; // multiple start times will be stored here

  return {
    start: function (id) {
      id = id || 'default'; // set id = 'default' if no valid argument passed
      startTimes[id] = +new Date; // store the current time using the timer id
    },
    stop: function (id) {
      id = id || 'default';
      var diff = (+new Date - startTimes[id]); // get the difference
      delete startTimes[id]; // remove the stored start time
      return diff || undefined; // return the difference in milliseconds
    }
  };
}());

答案 5 :(得分:1)

var initialTime = (new Date).getTime(), i = 55000;

(function() {
    while ( i-- ) {
        setTimeout( function(){}, 20 );
    }
})()

var finalTime = ( new Date ).getTime(), diff = (new Date);

diff.setTime( finalTime - initialTime );

alert( diff.getMilliseconds() + 'ms' )