<script>
var d1=new Date("2009/01/02");
var d2=new Date("2007/01/01");
function getYearDifference(d1,d2){
return (d1.getMonth()>=d1.getMonth() && d1.getDate()>=d2.getDate() ) ? d1.getFullYear()-d2.getFullYear() : d1.getFullYear()-d2.getFullYear()-1;
}
alert(getYearDifference(d1,d2));</script>

解决方案 »

  1.   

    to  JK_10000 
    你写的这个只是比较了年。不精确。 需要精确到天。
    例如 1996年6月21日 与 2007年11月26日,两个日期相差 11.43年 =两个日期的天数除以360
      

  2.   


    <script type="text/javascript">   
    var date1 = new Date("2007/11/26");
    var date2 = new Date("1996/06/11");
    window.alert((date1-date2)/1000/60/60/24/365);
    </script> 
      

  3.   

    如果想保留2位小数点的话就这样<script type="text/javascript">   
    var date1 = new Date("2007/11/26");
    var date2 = new Date("1996/06/11");
    var date3 = (date1-date2)/1000/60/60/24/365;
    window.alert(Math.round(date3*100)/100); //如果是3位小数点就*1000,4位*10000
    </script> 
      

  4.   

    (date1-date2)/1000/60/60/24/365;
    这个是根据date1和date2之间的毫秒差,如果最后是除以365,是不是意味着 一年一定是365天????闰年怎么办????
      

  5.   


    var date1 = new Date("2007/11/26");
    var date2 = new Date("1996/06/11");
    var date3 = new Date(2000,date1.getMonth(),date1.getDate());
    var date4 = new Date(2000,date2.getMonth(),date2.getDate());
    var year = date1.getFullYear() - date2.getFullYear() + (date3 > date4 ? 0 : -1);计算整年的方法包括了闰年之类的 你可以参考下。
      

  6.   

    最好的结果是:使用excel计算的结果和 使用js计算的结果一致
    计算的结果与       excel中公式days360计算两个日期得到的结果是一致的   
    例如   1996年6月21日   与   2007年11月26日,两个日期相差   11.43年 
      

  7.   

    var date1 = new Date("1996/06/21");
    var date2 = new Date("2007/11/26");
    var fm=date1.getMonth();
    var sm=date2.getMonth();
    var dd1=(sm-fm)*30+(date2.getDate()-date1.getDate());
    var year = date2.getFullYear() - date1.getFullYear()+dd1/360;year=11.4305555自己解决了 ,不过也要谢谢上述各位