我需要计算两个日期的相差天数。思路很清晰,算出他们相差的毫秒数,然后除以每天的毫秒数。
function setTime(){
var yearFm    ='2011';
var monthFm   ='01';
var dayFm     ='31';
var yearTo    = '2011';
var monthTo   = '02';
var dayTo     = '01';
var fromD     = new Date(yearFm, monthFm, dayFm);
var toD       = new Date(yearTo, monthTo, dayTo);
var no = Number((toD.getTime() - fromD.getTime()) / (24 * 60 * 60 * 1000)) + 1;
return no;
}
为什么toD.getTime()    是1298908800000
      fromD.getTime()) 是1299081600000
这是怎么回事,toD是2011年2月1号,fromD是2011年1月31号,为什么toD.getTime()会比fromD.getTime()) 还小呢,求各路大侠解答
PS:如果数据换掉,在其他情况下,算出的数据还是正常的

解决方案 »

  1.   

    java吗? 月是从0开始的,0131相当于二月三十一,会自动前推至三月二日或三日,是要比to多了
      

  2.   


    function setTime(){
    d1 = new Date("2011/01/31");
    d2 = new Date("2011/02/01");
    var time= d2.getTime() - d1.getTime();
    var days = parseInt(time / (1000 * 60 * 60 * 24));
    alert(days);
    }
      

  3.   

    java吗? 月是从0开始的,0131相当于二月三十一,会自动前推至三月二日或三日,是要比to多了 这是js代码 是不是js中也一样呢
      

  4.   

    谢谢各位 问题解决了
    本菜鸟不知道Calendar的月份是从0开始的