例如:给定截止日期enddate=2010-07-31
计算得到开始日期startdate=2010-06-30
这个问题的关键在于对以下几处的考虑:
1、startdate跨年
2、startdate是2月(需考虑闰年的情况)
3、大小月
<html>
<script type="text/javascript">
function getInitStartDate(enddate){
var comp = enddate.split("-");
var year = comp[0];
var month = comp[1];
var date = comp[2];
if(month == "01") { //前一月跨年
month = 12;
year = year - 1;
} else {
month = month - 1;
if(month == 2 && date > 28) {
date = isLeapYear(year) ? 29 : 28;
} else if(date == 31){
switch(month) {
case 4:
case 6:
case 9:
case 11: date = 30; break;
default: break;
}
}
}
month = (""+month).length==1 ? ("0"+month) : (""+month);
var dateFormat = year + "-" + month + "-" + date;
return dateFormat;
}
function isLeapYear(y) { //判断y是否为闰年
return (y % 4 == 0) && (y % 400 == 0 || y % 100 != 0);
}
alert(getInitStartDate("2010-07-31"));
</script>
</html>