时间字段超过24小时(定时器)

Timefield with more than 24 hours ( timer )

本文关键字:定时器 24小时 字段 时间      更新时间:2023-09-26

我有这个函数

function calculateTimes(firstDate, firstTime, secondDate, secondTime){
    var fDate = firstDate+" "+firstTime;
    var sDate = secondDate+" "+secondTime;
    var firstDateFull = new Date(fDate);
    var secondDateFull = new Date(sDate);
    var diff = secondDateFull - firstDateFull;
    var diffSeconds = diff / 1000;
    var HH = Math.floor(diffSeconds / 3600);
    var MM = Math.floor((diffSeconds % 3600) / 60);
    var SS = "00";
    var formatted = ((HH < 10) ? ("0" + HH) : HH) + ":" + ((MM < 10) ? ("0" + MM) : MM);
    return formatted;
}  

我像这样使用

    $('#uoc-r4disDate-fld, #uoc-r4disTime-fld, #uoc-disDate-fld, #uoc-disTime-fld').on('change', function() {
        $("#uoc-delay-fld").val(calculateTimes($("#uoc-r4disDate-fld").val(), $("#uoc-r4disTime-fld").val(), $("#uoc-disDate-fld").val(), $("#uoc-disTime-fld").val()));
    });

我的问题是这是一个延迟字段,时间可以超过24小时。是否有一种方法,使一个时间字段接受超过24小时的小时在JavaScript?我想我使用的数据库(第4维)可以接受24小时以上的时间来处理这种情况。

因此,它需要能够显示- 26:34。时间格式,如秒表。

如果我得到一切正确,那么您使用<input type="time" />作为»时间字段»。这种输入类型设计用于处理日时间,而不是时间跨度。这些天数可以设置为12小时或24小时的格式,它们都描述了一天中的一个时间。像"35:54"这样的值是35小时54分钟的时间跨度,不能用来描述一天中的特定时间,所以对于这种类型的输入,这样的值是无效的。

如果需要输入这些值,当然可以使用一个<input type='text' />或两个<input type="number" />,一个用于小时,一个用于分钟,如下所示:

<div id="time-span">
    <input type="number" min="0" step="1" />:<input type="number" min="0" max="59" step="1" />
</div>