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;
};
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。