0

I got the In-time: 11:08:43 and Out-time: 10:21:06 in this format I want to calculate difference between this two time. Type of both time is string. How is it possible in Angular 2?

for (let item of this.list) {
    if (item.pin.length == 2) {
        var inTime = item.pin[0].time;
        var outTime = item.pin[1].time;
        let diffInMs: number = Date.parse(outTime) - Date.parse(inTime);
        let diffInHours: number = diffInMs / 1000 / 60 / 60;
        console.log(diffInHours);
    }
}
Sangwin Gawande
  • 7,658
  • 8
  • 48
  • 66
Krunal Joshi
  • 55
  • 1
  • 6
  • 2
    See: https://stackoverflow.com/questions/1787939/check-time-difference-in-javascript (your question really isn't related to Angular) – Rick Oct 24 '17 at 06:35
  • Why your code isn't working ? What is the current output for your example ? What is your expected output for your example ? – Pac0 Oct 24 '17 at 08:36

3 Answers3

1
  if (item.pin.length == 2) {
      var inTime = item.pin[0].time;
      var outTime = item.pin[1].time;

      let IN = new Date(` ${item.date} ${inTime}`);
      let OUT = new Date(` ${item.date} ${outTime}`);
      let diff = OUT.getTime() - IN.getTime();
      var msec = diff;
      var hh = Math.floor(msec / 1000 / 60 / 60);
      msec -= hh * 1000 * 60 * 60;
      var mm = Math.floor(msec / 1000 / 60);
      msec -= mm * 1000 * 60;
      var ss = Math.floor(msec / 1000);
      msec -= ss * 1000;
      this.totalHour.push(hh + ":" + mm + ":" + ss);
    }
Krunal Joshi
  • 55
  • 1
  • 6
0

I guess this is a duplicat question of this: Date difference

For user630209 the right answer was

let date1: string = params.data.incidentTime;
let date2: string = params.data.creationTime;

let diffInMs: number = Date.parse(date2) - Date.parse(date1);
let diffInHours: number = diffInMs / 1000 / 60 / 60;

console.log(diffInHours);

Use Math.floor to round the result down, or Math.ceil to round it up

Gomze
  • 51
  • 10
0
getDataDiff(startDate, endDate) { 
    var diff = endDate.getTime() - startDate.getTime();
    var days = Math.floor(diff / (60 * 60 * 24 * 1000));
    var hours = Math.floor(diff / (60 * 60 * 1000)) - (days * 24);
    var minutes = Math.floor(diff / (60 * 1000)) - ((days * 24 * 60) + (hours * 60));
    var seconds = Math.floor(diff / 1000) - ((days * 24 * 60 * 60) + (hours * 60 * 60) + (minutes * 60));
    console.log(days, hours, minutes, seconds);
}
Zsolt Meszaros
  • 21,961
  • 19
  • 54
  • 57