javascript中关于日期的一个奇怪问题?(有源代码)
okzjq 2004-04-30 09:20:42 <script language="javascript">
function getFee(sum,beginDate,endDate,years){
var i,j,year,month,day;
var c1=new Date();
var c2=new Date();
i=beginDate.indexOf('-');
j=beginDate.lastIndexOf('-');
if(i<0 || j<0){
alert("日期格式错误,请重试!")
return 0;
}
else{
year=parseInt(beginDate.substring(0,i));
month=parseInt(beginDate.substring(i+1,j));
day=parseInt(beginDate.substring(j+1));
}
c1.setYear(year);
c1.setMonth(month);
c1.setDate(day);
i=endDate.indexOf('-');
j=endDate.lastIndexOf('-');
if(i<0 || j<0){
alert("日期格式错误,请重试!")
return 0;
}
else{
year=parseInt(endDate.substring(0,i));
month=parseInt(endDate.substring(i+1,j));
day=parseInt(endDate.substring(j+1));
}
c2.setYear(year);
c2.setMonth(month);
c2.setDate(day);
var days=(c2.getTime()-c1.getTime())/(1000*24*3600);
alert("the days is: "+days);
var result=Math.round(sum*days/(years*3.65));
result=result/100;
return result;
}
alert(getFee(1000,"2004-4-06","2004-4-30",1));
</script>
这是一个计算折旧费用的函数。sum表示总金额,beginDate表示开始日期,
endDate表示结束日期,years表示使用年数。
当计算getFee(1000,"2004-4-06","2004-4-30",1)会显示日期日期相差24天。
当计算getFee(1000,"2004-4-06","2004-5-1",1)会显示日期日期相差26天。
难道4月份也是31天的嘛?