Javascript计时器不正确
我试图对ajax请求计时,但得到的是随机经过的时间: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'); } } …比如
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);