javascript实现日期按月份加减
项目中需要用到,自己写了一个。javascript日期按月加减
<!DOCTYPEhtml>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metacharset="utf-8">
<title></title>
<script>
functiondateToDate(date){
varsDate=newDate();
if(typeofdate=='object'
&&typeofnewDate().getMonth=="function"
){
sDate=date;
}
elseif(typeofdate=="string"){
vararr=date.split('-')
if(arr.length==3){
sDate=newDate(arr[0]+'-'+arr[1]+'-'+arr[2]);
}
}
returnsDate;
}
functionaddMonth(date,num){
num=parseInt(num);
varsDate=dateToDate(date);
varsYear=sDate.getFullYear();
varsMonth=sDate.getMonth()+1;
varsDay=sDate.getDate();
vareYear=sYear;
vareMonth=sMonth+num;
vareDay=sDay;
while(eMonth>12){
eYear++;
eMonth-=12;
}
vareDate=newDate(eYear,eMonth-1,eDay);
while(eDate.getMonth()!=eMonth-1){
eDay--;
eDate=newDate(eYear,eMonth-1,eDay);
}
returneDate;
}
functioncalcDate(){
vard=document.getElementById('date').value;
varn=document.getElementById('num').value;
vareDate=addMonth(d,n);
document.getElementById('result').innerHTML=eDate.getFullYear()+'-'+(eDate.getMonth()+1)+'-'+eDate.getDate();
}
</script>
</head>
<body>
<inputtype="date"id="date"/>
<inputtype="number"id="num"value="1"/>
<inputtype="button"value="计算"onclick="calcDate()"/>
<divid="result"></div>
</body>
</html>
方法二:
<scriptlanguage="javascript">
Date.prototype.Format=function(fmt)
{
//代码作者:meizz
varo=
{
"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+)/.test(fmt))
fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));
for(varkino)
if(newRegExp("("+k+")").test(fmt))
fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length)));
returnfmt;
}
Date.prototype.addDays=function(d)
{
this.setDate(this.getDate()+d);
};
Date.prototype.addWeeks=function(w)
{
this.addDays(w*7);
};
Date.prototype.addMonths=function(m)
{
vard=this.getDate();
this.setMonth(this.getMonth()+m);
if(this.getDate()<d)
this.setDate(0);
};
Date.prototype.addYears=function(y)
{
varm=this.getMonth();
this.setFullYear(this.getFullYear()+y);
if(m<this.getMonth())
{
this.setDate(0);
}
};
</script>
方法三:
<script>
functionDateAdd(interval,number,date)
{
/*
*---------------DateAdd(interval,number,date)-----------------
*DateAdd(interval,number,date)
*功能:实现VBScript的DateAdd功能.
*参数:interval,字符串表达式,表示要添加的时间间隔.
*参数:number,数值表达式,表示要添加的时间间隔的个数.
*参数:date,时间对象.
*返回:新的时间对象.
*varnow=newDate();
*varnewDate=DateAdd("d",5,now);
*author:wanghr100(灰豆宝宝.net)
*update:2004-5-2811:46
*---------------DateAdd(interval,number,date)-----------------
*/
switch(interval)
{
case"y":{
date.setFullYear(date.getFullYear()+number);
returndate;
break;
}
case"q":{
date.setMonth(date.getMonth()+number*3);
returndate;
break;
}
case"m":{
date.setMonth(date.getMonth()+number);
returndate;
break;
}
case"w":{
date.setDate(date.getDate()+number*7);
returndate;
break;
}
case"d":{
date.setDate(date.getDate()+number);
returndate;
break;
}
case"h":{
date.setHours(date.getHours()+number);
returndate;
break;
}
case"m":{
date.setMinutes(date.getMinutes()+number);
returndate;
break;
}
case"s":{
date.setSeconds(date.getSeconds()+number);
returndate;
break;
}
default:{
date.setDate(d.getDate()+number);
returndate;
break;
}
}
}
varnow=newDate();
//加五天.
varnewDate=DateAdd("d",5,now);
alert(newDate.toLocaleDateString())
//加两个月.
newDate=DateAdd("m",2,now);
alert(newDate.toLocaleDateString())
//加一年
newDate=DateAdd("y",1,now);
alert(newDate.toLocaleDateString())
</script>
以上所述就是本文的全部内容了,希望大家能够喜欢。