我正在处理 pdf 表单并尝试从 2 个字段计算小时数。只要时间不超过午夜(24 小时格式),我就会得到正确的响应。一旦过了午夜,我就会得到一个负数。如果返回值为负数,有没有办法将 24 小时加到返回值上?这是该字段的计算结果 var startTime = this.getField("SHIFT STARTRow1").value; var endTime = this.getField("SHIFT ENDRow1").value; this.getField("TOTAL HOURSRow1").value = timeDiff(startTime, endTime); if ((event.value == "") || (event.value == Infinity) || isNaN(event.value)) {event.value = "";} 这是 javascript 的形式 - timeDifffunction timeDiff(startTime, endTime) { var startArr = startTime.split(":"); var endArr = endTime.split(":"); var startDate = new Date(0, 0, 0, startArr[0], startArr[1], 0); var endDate = new Date(0, 0, 0, endArr[0], endArr[1], 0); var diff = endDate.getTime() - startDate.getTime(); var hours = diff / 1000 / 60 / 60; return hours.toFixed(2) } console.log(timeDiff('6:24', '8:13')) // 1.82所以使用这个脚本,如果我输入 12:30 作为开始时间和 01:45 作为结束时间,我得到 -10.75 的回报。但是,我需要 13.25 的回报。我试图找到另一个帮助我解决这个问题的线程,但也许我忽略了它。有什么帮助吗?
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
如果结束时间小于开始时间,则加 24
function timeDiff(startTime, endTime) {
var startArr = startTime.split(":").map(Number);
var endArr = endTime.split(":").map(Number);
if (startArr[0] > endArr[0]) {
endArr[0] += 24;
}
var hours = endArr[0] + endArr[1]/60 - startArr[0] - startArr[1]/60;
return hours.toFixed(2)
}
console.log(timeDiff('23:10', '1:00'))
添加回答
举报
0/150
提交
取消
