简体   繁体   English

如何计算Angular 2中的时间差

[英]How to calculate difference between to time in Angular 2

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.我以这种格式得到了 In-time: 11:08:43和 Out-time: 10:21:06我想计算这两个时间之间的差异。 Type of both time is string.两个时间的类型都是字符串。 How is it possible in Angular 2?在 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);
    }
}
  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);
    }

I guess this is a duplicat question of this: Date difference我想这是一个重复的问题: 日期差异

For user630209 the right answer was对于 user630209,正确答案是

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使用 Math.floor 将结果四舍五入,或使用 Math.ceil 将结果四舍五入

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM