javascript指定日期增加自然月份(有闰年2月判断)
function commonAddMouth(dateStr,num,type) {
var monthnum = 0;
if (typeof (num) == "string"){
monthnum = parseInt(num);
}else{
monthnum = num;
}
var dates= new Date(dateStr);
var date = new Date(dates.setDate(dates.getDate()-1));
var day = date.getDate();
var month=date.getMonth();
date.setMonth(date.getMonth() + (monthnum*1), 1);
var Jmonth = date.getMonth()+1;
var Jyear=date.getFullYear();
if(Jmonth == 4 || Jmonth == 6 || Jmonth == 9 || Jmonth == 11) {
if (day > 30) {
day = 30;
}
}else if (Jmonth == 2) {
if(((Jyear % 4) == 0) && ((Jyear % 100) != 0) || ((Jyear % 400) == 0)){
if (day > 29) {
day = 29;
} else if(day==28){
day = 29;
}else {
day = day;
}
}else{
if (day > 28) {
day = 28
}
}
}else{
if (day > 31) {
day = 31;
}
}
var tHours = date.getHours();
var tMinutes = date.getMinutes();
var tSeconds = date.getSeconds();
Jmonth = doHandleMonth(Jmonth);
day = doHandleMonth(day);
if(type=="0"){
return Jyear+"-"+Jmonth+"-"+day;
}
return Jyear+"-"+Jmonth+"-"+day+" "+tHours+":"+tMinutes+":"+tSeconds;
}
function doHandleMonth(month){
var m = month;
if(month.toString().length == 1){
m = "0" + month;
}
return m;
}