-1

function timeDifference(laterdate, earlierdate) { var difference = laterdate.getTime() - earlierdate.getTime(); var daysDifference = Math.floor(difference/1000/60/60/24); difference -= daysDifference*1000*60*60*24 var hoursDifference = Math.floor(difference/1000/60/60); difference -= hoursDifference*1000*60*60 var minutesDifference = Math.floor(difference/1000/60); difference -= minutesDifference*1000*60 var secondsDifference = Math.floor(difference/1000); total = hoursDifference + ":" + minutesDifference + ":" + secondsDifference; return total; } There are two times in my code(startTime, endTime) and I am fetching them from database. startTime = '2022-12-13 10:00:48' and endTime = '2022-12-13 10:01:02'. I want the difference between two times in the format of HH:MM:SS

I need time difference, but I am getting NaN when I tried to get the difference.

1 Answers1

0

javaScript is an untyped language. this means that it is very elastic in some case but in other hand you may find yourself with unexpected results, especially when you don't implement appropriate controls.

in your code you are trying to return some math operation by concatenating numbers and strings:

total = hoursDifference + ":" + minutesDifference + ":" +secondsDifference;

But you should use backticks in order to achive what expected:

`${hoursDifference}:${minutesDifference}:${secondsDifference}`

function timeDifference(laterdate, earlierdate) {
    var difference = laterdate.getTime() - earlierdate.getTime();
    var daysDifference = Math.floor(difference / 1000 / 60 / 60 / 24);
    difference -= daysDifference * 1000 * 60 * 60 * 24
    var hoursDifference = Math.floor(difference / 1000 / 60 / 60);
    difference -= hoursDifference * 1000 * 60 * 60
    var minutesDifference = Math.floor(difference / 1000 / 60);
    difference -= minutesDifference * 1000 * 60
    var secondsDifference = Math.floor(difference / 1000);
    total =  `${hoursDifference}:${minutesDifference}:${secondsDifference}`;
    return total;
}

let laterdate = new Date("2022-12-13 10:00:48")
let earlierdate = new Date("2022-12-13 10:00:47")
console.log(timeDifference(laterdate,earlierdate))
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
purplenet
  • 35
  • 4
  • Yeah it's working fine, but sometimes that function is storing -1687956546 like this as the time difference, I am unable to figure it out – Kalpana Tamatam Dec 20 '22 at 18:15