<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>
你写的这个只是比较了年。不精确。 需要精确到天。
例如 1996年6月21日 与 2007年11月26日,两个日期相差 11.43年 =两个日期的天数除以360
<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>
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>
这个是根据date1和date2之间的毫秒差,如果最后是除以365,是不是意味着 一年一定是365天????闰年怎么办????
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);计算整年的方法包括了闰年之类的 你可以参考下。
计算的结果与 excel中公式days360计算两个日期得到的结果是一致的
例如 1996年6月21日 与 2007年11月26日,两个日期相差 11.43年
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自己解决了 ,不过也要谢谢上述各位