我使用以下脚本计算两个日期之间的日期差异(随时间)。它适用于大多数输入,但问题是它为某些输入返回错误的输出。这段代码有什么问题
例如,当我计算
之间的日期差异时01/10/2012 11 AM
和
02/10/2012 12 AM
它返回2天作为结果但是13小时。(作为我的申请的特殊舍入它将被视为一天)或者是否有任何替代方法。如果需要更多细节,请发表评论。
function dstrToUTC(ds) {
var dsarr = ds.split("/");
var dd = parseInt(dsarr[0],10);
var mm = parseInt(dsarr[1],10);
var yy = parseInt(dsarr[2],10);
var hh = parseInt(dsarr[3]);
return Date.UTC(yy,mm-1,dd,hh,0,0);
}
function datediff() {
var roomFrom=$("#room_from").val()+"/"+$("#room_time_from").val();
var foomTo=$("#room_to").val()+"/"+$("#room_time_to").val();
var d1 = dstrToUTC(roomFrom);
var d2 = dstrToUTC(foomTo);
var oneday = 86400000;
var dayDiff=(d2-d1) / oneday;
var dayDiff2=Math.floor(dayDiff);
//used to handle less than one day and, extra hours to a day
if(dayDiff>dayDiff2)
dayDiff=dayDiff2+1;
document.getElementById("room_nodays_add").value=dayDiff;
}