获取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)