Javascript中的日期差异计算错误

时间:2012-10-05 06:45:46

标签: javascript date datediff

我使用以下脚本计算两个日期之间的日期差异(随时间)。它适用于大多数输入,但问题是它为某些输入返回错误的输出。这段代码有什么问题

例如,当我计算

之间的日期差异时
  

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;

            }

1 个答案:

答案 0 :(得分:1)

这应该不是答案,但是如果你想节省时间并在javascript中进行干净的日期计算,请使用moment.js