两个日期类型的字符串 '2011-08-10' '2022-08-12'怎么在js 中求出他俩相差的月份(别用相差的天数除30 要精确的相差月份)

解决方案 »

  1.   


    alert(monDiff('2011-08-10','2022-08-12'))function monDiff(date1, date2){
        var dt1 = new Date(date1.replace(/-/g, '/'));
        var dt2 = new Date(date2.replace(/-/g, '/'));
        if(dt2<dt1){var t = dt2; dt2 = dt1; dt1 = t;};
        var y = dt2.getFullYear();
        var dy = y - dt1.getFullYear();
        var m2 = dt2.getMonth();
        var m1 = dt1.getMonth();
        var dm = m2>=m1?m2-m1:(m1-m2-12);
        var d2 = dt2.getDate();
        var d1 = dt1.getDate();
        return dy * 12 + dm + (d2>=d1?0:-1);
    }
      

  2.   


    var a = new Date('2022-08-12');var b = new Date('2011-08-10');var c=(a.getFullYear()-b.getFullYear())*12+(a.getMonth()-b.getMonth());
    alert(c);