try
-------------------------------------------------
<script language="javascript">alert(dateDiffYear("1980-3-3","1982-3-2"));function dateDiffYear(dateStart,dateEnd){
var start = dateStart.split("-");
var end = dateEnd.split("-");
var year = end[0]-start[0];
if(end[1] > start[1])
return year;
else if(end[1] == start[1]){
if(end[2]*1 + 1 >= start[2])
return year;
}
return year-1;
}
</script>
-------------------------------------------------
<script language="javascript">alert(dateDiffYear("1980-3-3","1982-3-2"));function dateDiffYear(dateStart,dateEnd){
var start = dateStart.split("-");
var end = dateEnd.split("-");
var year = end[0]-start[0];
if(end[1] > start[1])
return year;
else if(end[1] == start[1]){
if(end[2]*1 + 1 >= start[2])
return year;
}
return year-1;
}
</script>
我才刚调试了一下你的程序有一个不能满足
例如 alert(dateDiffYear("1980-2-1","1982-1-31")); 也因该是满2年的
但显示的仍是1 希望得到你的解答 多谢
-------------------------------------------
<script language="javascript">alert(dateDiffYear("1980-2-1","1982-1-31"));function dateDiffYear(dateStart,dateEnd){
var arr = dateStart.split("-");
var sDate = new Date(arr[0],arr[1],arr[2]);
var arr = dateEnd.split("-");
var eDate = new Date(arr[0],arr[1],arr[2]*1+1);
var year = eDate.getFullYear() - sDate.getFullYear();
if(eDate.getMonth() > sDate.getMonth() || (eDate.getMonth() == sDate.getMonth() && eDate.getDate() >= sDate.getDate()))
return year;
else
return year-1;
}
</script>
例如 alert(dateDiffYear("1980-5-1","1982-4-30"));
就出现是1
可能是 不区分大月(31) 小月(30) 和2月(28/29)我知道这个问题比较麻烦 但希望解决我会再开一贴50分送上
求解答 多谢了
alert(dateDiffYear("1980-4-1","1982-3-30"));
应该显示1 因为3月有31天
alert(dateDiffYear("1980-5-1","1982-4-30"));
function dateDiffYear(dateStart,dateEnd){
var sDate = new Date(dateStart.replace(/-/g,"/"));
var arr = dateEnd.split("-");
var eDate = new Date(arr[0]+"/" + arr[1] + "/" + arr[2]*1+1);
var year = eDate.getFullYear() - sDate.getFullYear();
if(eDate.getMonth() > sDate.getMonth() || (eDate.getMonth() == sDate.getMonth() && eDate.getDate() >= sDate.getDate()))
return year;
else
return year-1;
}
</script>
function dateDiffYear(dateStart,dateEnd)
{
var arr1 = dateStart.split("-");
var arr2 = dateEnd.split("-");
var year = arr2[0] - arr1[0];
if(arr2[1]>=arr1[1] && arr2[2]>=arr1[2]-1)
{ return year;}
else
{ if(arr1[2]==1)
{
if((arr2[1]==1 || arr2[1]==3 || arr2[1]==5 || arr2[1]==7 || arr2[1]==8 || arr2[1]==10 || arr2[1]==12) && arr2[2]==31)
return year;
if((arr2[1]==4 || arr2[1]==6 || arr2[1]==9 || arr2[1]==11) && arr2[2]==30)
return year;
if(arr2[1]==2)
if((arr2[0]%4 == 0 && arr2[0]%100 != 0|| arr2[0]%100 == 0 && arr2[0]%400 == 0) && arr2[2]==29)
return year;
else if((arr2[0]%4 != 0 || arr2[0]%100 == 0) && arr2[2]==28)
return year;
else
return year-1
}
return year-1;
}
}