Snake Eyes
Snake Eyes

Reputation: 16764

Get elapsed time in Javascript between two timestamps

I have a method which takes a while to execute and I want to calculate how much take the execution of method:

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);
}

But I don't get correct information for minutes and seconds. Where is my mistake ?

The method takes somewhere 1 minute and few seconds, but in log shows only 20-40 seconds..

Upvotes: 0

Views: 1700

Answers (2)

Sreeragh A R
Sreeragh A R

Reputation: 3021

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)

Upvotes: 2

agarwalankur85
agarwalankur85

Reputation: 274

In your code, instead of dividing seconds by 60, you should subtract it. If your total time was 300 secs, in first loop, you will have seconds updated to 5 while minutes will be updated to 1.

Upvotes: 0

Related Questions