Javascript计算时间,包括过夜

标签 javascript html

我已经创建了用于计算 2 次之间的代码,结果以分钟为单位。 如果没有过夜时间(例如:10:00 - 12:0014:00 - 16:00)当我用 23:0001:00(晚上 11 点到凌晨 1 点)填充它时,问题就出现了,它返回负值并向后计数。您可以在下面的代码片段中看到我的代码。

有人知道如果有隔夜的话如何正常计算吗?或者如果没有日期就不可能?

function parseTime(s) {
    var c = s.split(':');
    return (parseInt(c[0]) * 60) + parseInt(c[1]);
}
function getTotalMin(x)
{
    var awal = document.getElementById("awaljkab").value;
    var akhir = document.getElementById("akhirjkab").value;
    var selisih = parseTime(akhir) - parseTime(awal);
    x.value = String(selisih);
}
<!-- input clock as HH:mm ; example: 10:00 -->
<input type="text" class="form-control timepicker" name="startjkab" id="awaljkab" />
<input type="text" class="form-control timepicker" name="finishjkab" id="akhirjkab" />
<input type="text" class="form-control" name="lamajkab" onfocus="getTotalMin(this);" readonly="readonly" />

最佳答案

在计算selisih之前,您应该检查第二个小时是否小于第一个小时:

if (akhir < awal) akhir += 24 * 60;

这样您就可以确保 akhir 代表第二天。之后,您可以按照您的方式计算selih

关于Javascript计算时间,包括过夜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32370071/

相关文章:

javascript - JQuery css 操作会减慢页面速度

html - 浏览器显示大于原始尺寸的图像

html - 在 Bootstrap 支持的页面中向左侧面板添加滚动条

javascript - 滚动到错误的字段 ERROR

javascript - AudioWorklet是否在PC和Android上播放Chrome声音时延迟最小?

javascript - 从 DOM 中删除

javascript - Bootstrap 类 ='page-scroll' 不起作用

javascript - 如何在javascript中将变量的值分配为对象的名称

javascript - 如何确保 typescript 模块符合接口(interface)

php - 新文本字段出现在选项卡上?