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>
以上所述就是本文的全部内容了,希望大家能够喜欢。