如何在JS中计算两次之间的差异

时间:2015-12-11 03:27:33

标签: javascript jquery html css

我有一个问题。 在JavaScript中,我如何计算两次之间的差异。

下面我从输入表格(输入类型=时间)获取时间值,并尝试计算两次之间的差异。

<scirpt>
   function cal(obj) {
   var time = document.getElementById(obj.id).value;
   document.getElementById("endtime").value = time;
}
</script>
身体标签中的

<table class="table table-striped table-bordered table-hover" id="screentime">
    <tr>
        <th>Start Time</th>
        <th>End Time</th>
        <th></th>
    </tr>
    <tr class="item1">
        <td><input type="time" class="starttime" name="starttime" id="starttime" style="height:25px;"/></td>
        <td><input type="time" class="endtime" name="endtime" id="endtime" style="height:25px;" id="disabledInput" disabled/></td>
        <td><input type="button" value="delete" class="btn btn-outline btn-primary btn-xs" onclick="javascript:delTime(this);" /></td>
    </tr>
    <tr class="item2">
        <td><input type="time" class="starttime" name="starttime" id="starttime" style="height:25px;"/></td>
        <td><input type="time" class="endtime" name="endtime" id="endtime" style="height:25px;"/></td>
        <td><input type="button" value="delete" class="btn btn-outline btn-primary btn-xs" onclick="javascript:delTime(this);" /></td>
    </tr>
 </table>

此外,当我点击一个按钮时,'tr'标签将添加和删除jQuery。 我如何为计算选择正确的标签。

function addTime() {
    var lastItemNo = $("#screentime tr:last").attr("class").replace("item", "");

    var newitem = $("#screentime tr:eq(1)").clone();
    newitem.removeClass();
    newitem.find("td:eq(0)").attr("rowspan", "1");
    newitem.addClass("item"+(parseInt(lastItemNo)+1));

    $("#screentime").append(newitem);
    return;

}

2 个答案:

答案 0 :(得分:1)

试试我在这里制作的小提琴:https://jsfiddle.net/rjnwhyw7/1/

这是一个简单的函数,它基本上只是从输入中检索值,获取表示小时和分钟的正确子字符串,并计算与其整数值的差异。 HTML5时间输入还将PM值转换为24小时时间,因此您无需担心该边缘情况。

function calculate () {
    // Get the string values of each time.
    var startTime = $('.item1 .starttime').val();
    var endTime = $('.item1 .endtime').val();

    // Calculate the difference between hours and minutes by retrieving the correct substring and converting the string value to an integer.
    var hours = parseInt(endTime.substr(0, 2), 10) - parseInt(startTime.substr(0, 2), 10);
    var minutes = parseInt(endTime.substr(3, 5)) - parseInt(startTime.substr(3, 5), 10);
    // Convert the difference to minutes and return it.
    return (hours * 60) + minutes;
}

由您决定如何设计最终输出并处理负值。输出可以表示为字符串或以分钟为单位的值。

答案 1 :(得分:0)

请尝试此代码,请包含任何jquery min js var date1 = new Date('2015-12-11 10:04:07');  var date2 = new Date('2015-12-11 12:06:05');

var seconds =(date2- date1)/ 1000; var differance =(date2 - date1);

var minutes =(differance - seconds)/ 60; var hours =(differance - minutes)/ 60;

更多详情,请查看此链接http://www.allwebdevhelp.com/javascript/js-help-tutorials.php?i=55157