我有一个问题。 在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;
}
答案 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