javascript指定日期增加自然月份(有闰年2月判断)
Mr.Vv
发布
于
2022-06-09 18:03:03
发布
于
2022-06-09 18:03:03
javascript指定日期增加自然月份(有闰年2月判断)
// An highlighted block
* 当前日期增加n月
* @param dateStr 当前日期
* @param num 月
* @param type 0:2022-05-30 1:2022-05-30 11:11:11
* @returns {string}
function commonAddMouth(dateStr,num,type) {
var monthnum = 0;
if (typeof (num) == "string"){
monthnum = parseInt(num);
}else{
monthnum = num;
var date= new Date(dateStr);
//获取原日
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) {
//2月判断是否闰年
if(((Jyear % 4) == 0) && ((Jyear % 100) != 0) || ((Jyear % 400) == 0)){
if (day > 29) {
day = 29;
} else {
day = 28;
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;
* 日或月补0
* @param month
* @returns {string}
function doHandleMonth(month){