获取Javascript中两个时间戳之间经过的时间
我有一个需要一段时间才能执行的方法,我想计算执行该方法需要多少时间:获取Javascript中两个时间戳之间经过的时间,javascript,Javascript,我有一个需要一段时间才能执行的方法,我想计算执行该方法需要多少时间: var start = Date.now(); execute(); var final = Date.now(); var diff = final - start; var seconds = diff / 1000; var minutes = 0; var hours = 0; while(seconds >= 60) { minutes++; seconds = Math.round(seco
var start = Date.now();
execute();
var final = Date.now();
var diff = final - start;
var seconds = diff / 1000;
var minutes = 0;
var hours = 0;
while(seconds >= 60)
{
minutes++;
seconds = Math.round(seconds/60);
}
while(minutes >= 60) {
hours++;
minutes = Math.round(minutes/60);
}
但是我没有在几分钟和几秒钟内得到正确的信息。我的错在哪里
该方法大约需要1分几秒,但在日志中仅显示20-40秒。在代码中,不是将秒除以60,而是将其减去。如果总时间为300秒,则在第一个循环中,秒将更新为5,分钟将更新为1。您的差异应以毫秒为单位,而不是以秒为单位!?因此,尝试var seconds=diff/1000;即使这样,也不能显示正确的信息。使用Date.getTime,现在不行。我不知道,但是您的循环非常不必要,为什么不使用var minutes=parseIntseconds/60;?然后从那里开始,如果超过1小时,则执行var hours=parseIntminutes/60;从剩余的秒数中减去小时数,得到剩余的秒数…你最后的计算是错误的,这也是一种奇怪的方式来做你想做的事情。使用分钟数=Math.floorseconds/60;秒=秒%60;
startTime = Date.now();
execute();
endTime = Date.now();
totalSeconds = (endTime -startTime)/1000
hours = Math.floor(totalSeconds/3600)
minutes = Math.floor((totalSeconds%3600)/60)
seconds = Math.floor((totalSeconds%3600)%60)
console.log(hours, minutes, seconds)