Javascript计时器不正确

Javascript计时器不正确,javascript,jquery,timer,Javascript,Jquery,Timer,我试图对ajax请求计时,但得到的是随机经过的时间: startTime = new Date(); $.ajax({ ... success: function(response){ endTime = new Date(); timeDiff = endTime - startTime; elapsed = Math.round(timeDiff % 60); alert(elapsed + ' seconds elapsed'); } } …比如

我试图对ajax请求计时,但得到的是随机经过的时间:

startTime = new Date();  

$.ajax({
 ...
 success: function(response){

   endTime = new Date();
   timeDiff = endTime - startTime; 
   elapsed = Math.round(timeDiff % 60);

   alert(elapsed + ' seconds elapsed');
 }
}
…比如2秒后我得到36秒,59秒,或1秒等等


我做错了什么?

使用
/
而不是
%

%
是运算符

用于计算到日期之间的秒数的正确代码:

(endTime.getTime() - startTime.getTime()) / 1000

+
符号添加到两个版本的
新日期()

这将保证将日期转换为数值(时间戳),您可以使用该数值执行减法操作。看起来它在没有的情况下也能工作,但我不知道在浏览器/版本实现中会有什么作用


同样如其他答案中所述,您需要将结果(以毫秒为单位)除以
1000
以获得秒数。

日期-日期返回毫秒数。假设您的请求需要一秒钟,因此
timediff=1000
。然后执行
1000%60
,这是
40
,而不是您想要的

我想你想要这个:

elapsed = Math.round(timeDiff / 1000);
将毫秒转换为秒

模运算符
%
返回除法运算的剩余部分,该部分似乎不是您要处理的

elapsed = Math.round(timeDiff / 1000);