我到处搜索,但对答案不满意。 最后,我在这里发布以获得答案。
我有两个datepicker和time picker textbox ,其中显示12:00格式的AM和PM。
在这里,我想计算总计time ,其中包括天数和给定时间。 我想添加这些时间并将其显示在另一个文本框中。 我需要HH:MM格式。 我不需要秒,因为我的time picker textbox仅显示HH:MM ,对我来说足够了。
我尝试了多种添加方法,但我没有获得确切的时间值。
以下是我的HTML代码
下面是我的脚本代码
$(document).ready(function () {
function ConvertDateFormat(d, t) {
var dt = d.val().split('/');
return dt[0] + '/' + dt[1] + '/' + dt[2] + ' ' + t.val();
}
$(".time").change(function () {
var start = new Date(ConvertDateFormat($('#opening_date'), $('#garage_out_time')));
var end = new Date(ConvertDateFormat($('#closing_date'), $('#garage_in_time')));
console.log(start, end);
var diff = new Date(end - start);
var days = Math.floor(diff / 1000 / 60 / 60 / 24);
var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / 1000 / 60 / 60);
var total = (days * 24) + hours;
var startTime = document.getElementById("garage_out_time").value;
var endTime = document.getElementById("garage_in_time").value;
var s = startTime.split(':');
var e = endTime.split(':');
var endtime = parseInt(e[1], 10);
var starttime = parseInt(s[1], 10);
var min = endtime + starttime;
var minutes = min ;
var minhours = Math.floor(minutes / 60);
minutes = minutes % 60;
total = total + minhours;
if(minutes > 9){
$("#total_hours").val(total+":"+ minutes);
} else {
$("#total_hours").val(total+":0"+ minutes);
}
});
});
上面的代码在某种程度上是有效的,例如当我选择上午8:12到下午8:12时,我得到的结果是12:32 ,答案应该是12:00 。