javascript 封装Date日期类实例详解
javascript-封装Date日期类
(一)对日期进行格式化
自定义Date日期类的format()格式化方法
方式一:(非原创)
//对Date的扩展,将Date转化为指定格式的String //月(M)、日(d)、小时(H)、分(m)、秒(s)、季度(q)可以用1-2个占位符, //年(y)可以用1-4个占位符,毫秒(S)只能用1个占位符(是1-3位的数字) //例子: //(newDate()).Format("yyyy-MM-ddHH:mm:ss.S")==>2016-09-1916:32:53.731 //(newDate()).Format("yyyy-M-dH:m:s:S")==>2016-9-1916:40:9:955 Date.prototype.Format=function(fmt){//author: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; };
测试:
window.onload=function(){ vardate=newDate(); varb=date.toLocaleDateString();//获取的格式为:2016年9月19日 vard=date.toLocaleTimeString();//下午4:42:46 vare=date.toLocaleString();//2016年9月19日下午4:44:02 varf=date.toDateString();//MonSep192016 varg=date.toUTCString();//Mon,19Sep201608:45:42GMT varh=date.toString();//MonSep19201616:46:23GMT+0800(中国标准时间) //自定义日期格式 varc=date.Format("yyyy-MM-ddHH:mm:ss");//format()方法是自定义的 document.getElementById("aa").value=c; };
(二)根据日期返回本周周一和周日的日期
/** *根据日期返回本周周一和周日的日期 *@paramday *参数日期 *@paramnum *第几周 *@returnoneWeek *周一,周日所在日期 */ functiongetWeekDate(day,num){ num=num||0; //返回值:周一和周日所在的日期 varoneWeek={}; //初始日期 varinitDate=""; //截取年月日 initDate=day.split('')[0]; //ie兼容性问题,将yyyy-MM-dd转换成yyyy/MM/dd initDate=initDate.replace(/-/g,"/"); //将string转换成Date initDate=newDate(Date.parse(initDate));//格式只能是yyyy/MM/dd //返回day距离1970年1月1日0时0分的毫秒数 varnowTime=initDate.getTime(); //返回星期的某一天的数字:0(周日)到6(周六) varweekNum=initDate.getDay(); //一天所代表的毫秒数 varoneDayTime=24*60*60*1000; //显示周一 varMondayTime=nowTime-(weekNum-1)*oneDayTime; //显示周日 varSundayTime=nowTime+(7-weekNum)*oneDayTime; if(0!=num){ MondayTime+=7*num*oneDayTime; SundayTime+=7*num*oneDayTime; } //初始化日期时间 varmonday=newDate(MondayTime); varsunday=newDate(SundayTime); //formatDate是自定义的格式化方法 monday=monday.formatDate('yyyy-MM-dd'); sunday=sunday.formatDate('yyyy-MM-dd'); oneWeek.Monday=monday; oneWeek.Sunday=sunday; returnoneWeek; }
测试:
varweek=getWeekDate('2017-05-27',0); console.log(week.Monday+","+week.Sunday);
注意:
Date.parse()具有兼容性问题,低版本IE浏览器不支持"yyyy-MM-dd"转换成Date,只支持"yyyy/MM/dd"转换成日期。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!