前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javascript指定日期增加自然月份(有闰年2月判断)

javascript指定日期增加自然月份(有闰年2月判断)

作者头像
Mr.Vv
发布2022-06-09 18:03:03
1.1K1
发布2022-06-09 18:03:03
举报

javascript指定日期增加自然月份(有闰年2月判断)

代码语言:javascript
复制
// 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){
	var m = month;
	if(month.toString().length == 1){
		m = "0" + month;
	}
	return m;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • javascript指定日期增加自然月份(有闰年2月判断)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档