js日期插件dateHelp获取本月、三个月、今年的日期
最近看了一些关于面向对象的知识,最近工作中在做统计查询的时候需要用到本月、近三个月、今年的日期范围,所以下面用用面向对象的思想写了一个获取日期的插件,大家可以借鉴使用。
直接通过newDateHelp就可以调用了
varmyDate=newDateHelp({ date:'2015-02-01',//从此日期开始计算 format:'yyyy/MM/dd' }); myDate.getThisMonth(); myDate.getThreeMonth(); myDate.getThisYear();
dateHelp.js插件
/** *通过调用可以获取本月,近三个月,今年的日期 *@paramobj *@constructor */ functionDateHelp(obj){ /*varobj={ date:'2015-02-01',//从此日期开始计算 type:'month',//以年月日向前计算:年(year),月(month),日(day) value:'14',//向前计算的数值,年月日 format:'yyyy/mm/dd'//日期格式 }*/ this.date=obj.date; this.type=obj.type; this.value=obj.value==undefined?obj.value:0; this.format=obj.format==undefined?obj.format:'yyyy/MM/dd'; //日期和非日期格式获取年月日 if(this.dateinstanceofDate){ //处理传进来的是日期函数的 this.year=this.date.getFullYear(); this.month=this.date.getMonth()+1; this.day=this.date.getDate(); }else{ //处理传入的是非日期函数的 this.year=this.date.substr(0,4); this.month=this.date.substr(5,2); this.day=this.date.substr(8,2); } } DateHelp.prototype.beforeDate=function(type,value){ var_type=type||this.type, _value=value||this.value, _year=this.year, _month=this.month, _day=this.day; if(_type=='year'||_type=='年'){ _year-=_value; }elseif(_type=='month'||_type=='月'){ _year-=parseInt(_value/12); _month-=_value%12; if(_month<=0){ _year-=1; _month+=12; } }elseif(_type=='day'||_type=='日'){ }else{ } vardate=newDate(_year,_month-1,_day) returnthis.formatDate(date,this.format); } DateHelp.prototype.formatDate=function(date,fmt){ varo={ "M+":date.getMonth()+1,//月份 "d+":date.getDate(),//日 "h+":date.getHours(),//小时 "m+":date.getMinutes(),//分 "s+":date.getSeconds(),//秒 "q+":Math.floor((date.getMonth()+3)/3),//季度 "S":date.getMilliseconds()//毫秒 }; if(/(y+)/.test(fmt)) fmt=fmt.replace(RegExp.$1,(date.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; } DateHelp.prototype.getThisMonth=function(){ varfirst=newDate(this.year,this.month-1); varlast=newDate(this.year,this.month,0); returnthis.formatDate(first,this.format)+"-"+this.formatDate(last,this.format); } DateHelp.prototype.getThreeMonth=function(){ returnthis.beforeDate('month',3)+"-"+this.beforeDate('day',0); } DateHelp.prototype.getThisYear=function(){ varfirst=newDate(this.year,0,1); varlast=newDate(this.year,11,31); returnthis.formatDate(first,this.format)+"-"+this.formatDate(last,this.format); } /* //示例 varmyDate=newDateHelp({ date:'2015-02-01',//从此日期开始计算 format:'yyyy/MM/dd' }); console.log(myDate.getThisMonth()); console.log(myDate.getThreeMonth()); console.log(myDate.getThisYear());*/
html测试代码
<!DOCTYPEhtml> <html> <headlang="en"> <metacharset="UTF-8"> <title></title> <scriptsrc="myJs/dateHelp.js"></script> </head> <body> <script> varmyDate=newDateHelp({ date:newDate(),//从此日期开始计算 format:'yyyy/MM/dd' }); console.log(myDate.getThisMonth()); console.log(myDate.getThreeMonth()); console.log(myDate.getThisYear()); </script> </body> </html>
希望本文所述对大家学习javascript程序设计有所帮助。