我使用以下脚本来计算两个日期之间的日期差异(与时间)。它适用于大多数输入,但问题是它为某些输入返回错误的输出。这段代码有什么问题
例如,当我计算日期差时
2012 年 1 月 10 日上午 11 点
和
2012 年 2 月 10 日凌晨 12 点
结果返回 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;
}