 # How can I calculate the difference between two times that are in 24 hour format?

How can I calculate the difference between two times that are in 24 hour format?
assume that the two different time is like that start time 10:27 and end time 12.40
now i want to calculate the hours and min from two different time

So you have 2 differents formats or it’s a mistake ? You could probably use momentjs to solve it.

two different time is like that start time 10:27 and end time 12.40

it’s a mistake. ok let me try

`return moment('1027', 'HHmm').diff(moment('1242', 'HHmm'));`

Would do something like that, I didn’t try it so you maybe need to correct it.

EDIT :

``````    let diff = moment('12:42', 'HH:mm').diff(moment('10:27', 'HH:mm'))
let d = moment.duration(diff);
return Math.floor(d.asHours()) + moment.utc(diff).format(":mm");
``````
1 Like

I think my solution is not the best, maybe you should try other things ahah

below my time deference screenshots below the result

based on my time two difference time result should be shown 1:05
but get 1:00
below my code

``````let diff = moment(parseInt(this.endTime), 'H:m').diff(moment(parseInt(this.startTime), 'H:m'))
let d = moment.duration(diff);
let totaltime =Math.floor(d.asHours()) + moment.utc(diff).format(":mm");
``````

how can i fix that.

Can you console.log(parseInt(this.endTime)) and console.log(parseInt(this.startTime)) please ? Just take my code upper in the topic, it is working, ive tried it

its showing NaN

``````
private startTime:number;
private endTime:number;
let diff = moment(this.endTime, 'H:m').diff(moment(this.startTime, 'H:m'))

let d = moment.duration(diff);
let totaltime =Math.floor(d.asHours()) + moment.utc(diff).format(":mm");
``````

where i’m wrong?

Why are you passing number when it’s waiting for string ? Show your variables startTime and endTime

1 Like

its working properly right now

can i change the formal 1:01 to 1 hour 01 minute?

`Math.floor(d.asHours()) +" hours " + moment.utc(diff).format("mm") + " minutes";`

Something like that I suppose

1 Like

now actually i want to calculate amount based on time

supercharges \$40;

``````hourlyCharge : number =40;
this.totalammout=   this.hourlyCharge * parseInt(this.total);
console.log("Total ammount"+this.totalammout)
let diff = moment(this.endTime, 'H:m').diff(moment(this.startTime, 'H:m'))
let d = moment.duration(diff);
this.total =Math.floor(d.asHours()) +" hours " + moment.utc(diff).format("mm") + " minutes";
``````

I try to do look like this for calculating the amount based on time
How can i do that.

I feel like Im doing your job because you are too lazy to do it yourself. Based on the fact that you are a member for at least one year on this forum, you are more than capable to achieve this alone, so it will be the last time I help you:

``````let diff = moment(this.endTime, 'HH:mm').diff(moment(this.startTime, 'HH:mm'))
let d = moment.duration(diff);
let hours =  Math.floor(d.asHours());
let minutes = moment.utc(diff).format("mm");
this.totalAmount = hours * hourlyCharge + parseInt(minutes) * hourlyCharge/60;
this.total =hours +" hours " + minutes + " minutes";
``````
1 Like

Thank you so much…

best comment of the month

1 Like