我试着计算两个小时之间的差异。 我实现了这段代码:
changEndHour($event: any, i: number) {
var arrayControl = this.generalForm.get('hours') as FormArray;
let startHour = arrayControl.at(i).get('startHour').value,
startMin = arrayControl.at(i).get('startMin').value,
endMin = arrayControl.at(i).get('endMin').value,
endHour = $event.split(":"), date1 = new Date(), date2 = new Date();
date1.setHours(startHour, startMin).toString();
let d1=date1.setHours(startHour, startMin).toString();
date2.setHours(endHour, endMin).toString();
let d2=date2.setHours(endHour, endMin).toString();
let hours = (Math.abs(date1.getTime() - date2.getTime()) / 1000 / 60 / 60).toFixed(2);
arrayControl.at(i).get('result').setValue(hours);
}
当我测试时,此代码无法正确计算结果。 我想计算13:00 - 12:10。结果是0.83,这是错误的。 如何改进我的代码?
答案 0 :(得分:0)
您的代码运行良好。结果是60分钟的百分比。因此,通过执行以下计算
60 * 0.83 = 49.8
您可以在几分钟内获得所需的结果。
问题的解决方案是
let result = str.split(".")
console.log("Time difference is " + str[0] + " h, " + (60 * str[1]) + " min")