To get the hour difference between two times with moment.js, we can use the duration
, diff
, asHours
and asMinutes
methods.
For instance, we can write:
const startTime = moment("12:26:59 am", "HH:mm:ss a");
const endTime = moment("06:12:07 pm", "HH:mm:ss a");
const duration = moment.duration(endTime.diff(startTime));
const hours = parseInt(duration.asHours());
const minutes = parseInt(duration.asMinutes()) % 60;
console.log(hours, minutes);
We parse 2 times into moment objects with the moment
function.
We pass in the format of the time as the 2nd argument.
Then we call moment.duration
with the difference between endTime
and startTime
that we get with the diff
method.
Next, we get the hours part of the duration with the asHours
method.
And we get the minutes part of the duration with the asMinutes
method and get the remainder of that divided by 60.
Therefore, we get 17 45
from the console log.