js指定日期增加指定月份的实现方法
前言
本文主要给大家介绍的是关于js实现指定日期增加指定月份的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
首先,大致思路为:
1.先将字符串格式的时间类型转化为Date类型
2.再将Date类型的时间增加指定月份
3.最后将Date类型的时间在转化为字符串类型
示例代码:
1.先将字符串格式的时间类型转化为Date类型
varstr='2018-01-0100:00:00';//字符串格式的时间类型 varstr1=str.replace(/-/g,'/');//'2018/01/0100:00:00' vardate=newDate(Date.parse(str1));//date格式的时间类型
2.再将Date类型的时间增加指定月份
varnowDate=date.addMonth(3);//date格式的时间类型 Date.prototype.addMonth=function(addMonth){ vary=this.getFullYear(); varm=this.getMonth(); varnextY=y; varnextM=m; //如果当前月+要加上的月>11这里之所以用11是因为js的月份从0开始 if((m+addMonth)>11){ nextY=y+1; nextM=parseInt(m+addMonth)-12; }else{ nextM=this.getMonth()+addMonth } vardaysInNextMonth=Date.daysInMonth(nextY,nextM); varday=this.getDate(); if(day>daysInNextMonth){ day=daysInNextMonth; } returnnewDate(nextY,nextM,day); }; Date.daysInMonth=function(year,month){ if(month==1){ if(year%4==0&&year%100!=0) return29; else return28; }elseif((month<=6&&month%2==0)||(month=6&&month%2==1)) return31; else return30; };
3.最后将Date类型的时间在转化为字符串类型
varnowStr=nowDate.format('yyyy-MM-ddhh:mm:ss');//指定字符串格式的时间类型 Date.prototype.format=function(format){ vardate={ "M+":this.getMonth()+1, "d+":this.getDate(), "h+":this.getHours(), "m+":this.getMinutes(), "s+":this.getSeconds(), "q+":Math.floor((this.getMonth()+3)/3), "S+":this.getMilliseconds() }; if(/(y+)/i.test(format)){ format=format.replace(RegExp.$1,(this.getFullYear()+'').substr(4-RegExp.$1.length)); } for(varkindate){ if(newRegExp("("+k+")").test(format)){ format=format.replace(RegExp.$1,RegExp.$1.length==1 ?date[k]:("00"+date[k]).substr((""+date[k]).length)); } } returnformat; };
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。