js获取当前日期时间及其它日期操作汇总
本文实例为大家分享了javascript时间操作的使用常见场景,供大家参考,具体内容如下
varmyDate=newDate(); myDate.getYear();//获取当前年份(2位) myDate.getFullYear();//获取完整的年份(4位,1970-????) myDate.getMonth();//获取当前月份(0-11,0代表1月) myDate.getDate();//获取当前日(1-31) myDate.getDay();//获取当前星期X(0-6,0代表星期天) myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours();//获取当前小时数(0-23) myDate.getMinutes();//获取当前分钟数(0-59) myDate.getSeconds();//获取当前秒数(0-59) myDate.getMilliseconds();//获取当前毫秒数(0-999) myDate.toLocaleDateString();//获取当前日期 varmytime=myDate.toLocaleTimeString();//获取当前时间 myDate.toLocaleString();//获取日期与时间
日期时间脚本库方法列表
Date.prototype.isLeapYear判断闰年 Date.prototype.Format日期格式化 Date.prototype.DateAdd日期计算 Date.prototype.DateDiff比较日期差 Date.prototype.toString日期转字符串 Date.prototype.toArray日期分割为数组 Date.prototype.DatePart取日期的部分信息 Date.prototype.MaxDayOfDate取日期所在月的最大天数 Date.prototype.WeekNumOfYear判断日期所在年的第几周 StringToDate字符串转日期型 IsValidDate验证日期有效性 CheckDateTime完整日期时间检查 daysBetween日期天数差
javascript代码块
//————————————————— //判断闰年 //————————————————— Date.prototype.isLeapYear=function() { return(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))); } //————————————————— //日期格式化 //格式YYYY/yyyy/YY/yy表示年份 //MM/M月份 //W/w星期 //dd/DD/d/D日期 //hh/HH/h/H时间 //mm/m分钟 //ss/SS/s/S秒 //————————————————— Date.prototype.Format=function(formatStr) { varstr=formatStr; varWeek=[‘日','一','二','三','四','五','六']; str=str.replace(/yyyy|YYYY/,this.getFullYear()); str=str.replace(/yy|YY/,(this.getYear()%100)>9?(this.getYear()%100).toString():'0'+(this.getYear()%100)); str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0'+this.getMonth()); str=str.replace(/M/g,this.getMonth()); str=str.replace(/w|W/g,Week[this.getDay()]); str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0'+this.getDate()); str=str.replace(/d|D/g,this.getDate()); str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0'+this.getHours()); str=str.replace(/h|H/g,this.getHours()); str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0'+this.getMinutes()); str=str.replace(/m/g,this.getMinutes()); str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0'+this.getSeconds()); str=str.replace(/s|S/g,this.getSeconds()); returnstr; } //+————————————————— //|求两个时间的天数差日期格式为YYYY-MM-dd //+————————————————— functiondaysBetween(DateOne,DateTwo) { varOneMonth=DateOne.substring(5,DateOne.lastIndexOf(‘-‘)); varOneDay=DateOne.substring(DateOne.length,DateOne.lastIndexOf(‘-‘)+1); varOneYear=DateOne.substring(0,DateOne.indexOf(‘-‘)); varTwoMonth=DateTwo.substring(5,DateTwo.lastIndexOf('-')); varTwoDay=DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf('-')+1); varTwoYear=DateTwo.substring(0,DateTwo.indexOf('-')); varcha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)-Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000); returnMath.abs(cha); } //+————————————————— //|日期计算 //+————————————————— Date.prototype.DateAdd=function(strInterval,Number){ vardtTmp=this; switch(strInterval){ case‘s':returnnewDate(Date.parse(dtTmp)+(1000*Number)); case‘n':returnnewDate(Date.parse(dtTmp)+(60000*Number)); case‘h':returnnewDate(Date.parse(dtTmp)+(3600000*Number)); case‘d':returnnewDate(Date.parse(dtTmp)+(86400000*Number)); case‘w':returnnewDate(Date.parse(dtTmp)+((86400000*7)*Number)); case‘q':returnnewDate(dtTmp.getFullYear(),(dtTmp.getMonth())+Number*3,dtTmp.getDate(),dtTmp.getHours(),dtTmp.getMinutes(),dtTmp.getSeconds()); case‘m':returnnewDate(dtTmp.getFullYear(),(dtTmp.getMonth())+Number,dtTmp.getDate(),dtTmp.getHours(),dtTmp.getMinutes(),dtTmp.getSeconds()); case‘y':returnnewDate((dtTmp.getFullYear()+Number),dtTmp.getMonth(),dtTmp.getDate(),dtTmp.getHours(),dtTmp.getMinutes(),dtTmp.getSeconds()); } } //+————————————————— //|比较日期差dtEnd格式为日期型或者有效日期格式字符串 //+————————————————— Date.prototype.DateDiff=function(strInterval,dtEnd){ vardtStart=this; if(typeofdtEnd==‘string')//如果是字符串转换为日期型 { dtEnd=StringToDate(dtEnd); } switch(strInterval){ case‘s':returnparseInt((dtEnd-dtStart)/1000); case‘n':returnparseInt((dtEnd-dtStart)/60000); case‘h':returnparseInt((dtEnd-dtStart)/3600000); case‘d':returnparseInt((dtEnd-dtStart)/86400000); case‘w':returnparseInt((dtEnd-dtStart)/(86400000*7)); case‘m':return(dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12)-(dtStart.getMonth()+1); case‘y':returndtEnd.getFullYear()-dtStart.getFullYear(); } } //+————————————————— //|日期输出字符串,重载了系统的toString方法 //+————————————————— Date.prototype.toString=function(showWeek) { varmyDate=this; varstr=myDate.toLocaleDateString(); if(showWeek) { varWeek=[‘日','一','二','三','四','五','六']; str+='星期'+Week[myDate.getDay()]; } returnstr; } //+————————————————— //|日期合法性验证 //|格式为:YYYY-MM-DD或YYYY/MM/DD //+————————————————— functionIsValidDate(DateStr) { varsDate=DateStr.replace(/(^\s+|\s+$)/g,”);//去两边空格; if(sDate==”)returntrue; //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为” //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式 vars=sDate.replace(/[\d]{4,4}[-/]{1}[\d]{1,2}[-/]{1}[\d]{1,2}/g,”); if(s==”)//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D { vart=newDate(sDate.replace(/-/g,'/')); varar=sDate.split(/[-/:]/); if(ar[0]!=t.getYear()||ar[1]!=t.getMonth()+1||ar[2]!=t.getDate()) { //alert(‘错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。'); returnfalse; } } else { //alert(‘错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。'); returnfalse; } returntrue; } //+————————————————— //|日期时间检查 //|格式为:YYYY-MM-DDHH:MM:SS //+————————————————— functionCheckDateTime(str) { varreg=/^(\d+)-(\d{1,2})-(\d{1,2})(\d{1,2}):(\d{1,2}):(\d{1,2})$/; varr=str.match(reg); if(r==null)returnfalse; r[2]=r[2]-1; vard=newDate(r[1],r[2],r[3],r[4],r[5],r[6]); if(d.getFullYear()!=r[1])returnfalse; if(d.getMonth()!=r[2])returnfalse; if(d.getDate()!=r[3])returnfalse; if(d.getHours()!=r[4])returnfalse; if(d.getMinutes()!=r[5])returnfalse; if(d.getSeconds()!=r[6])returnfalse; returntrue; } //+————————————————— //|把日期分割成数组 //+————————————————— Date.prototype.toArray=function() { varmyDate=this; varmyArray=Array(); myArray[0]=myDate.getFullYear(); myArray[1]=myDate.getMonth(); myArray[2]=myDate.getDate(); myArray[3]=myDate.getHours(); myArray[4]=myDate.getMinutes(); myArray[5]=myDate.getSeconds(); returnmyArray; } //+————————————————— //|取得日期数据信息 //|参数interval表示数据类型 //|y年m月d日w星期ww周h时n分s秒 //+————————————————— Date.prototype.DatePart=function(interval) { varmyDate=this; varpartStr=”; varWeek=[‘日','一','二','三','四','五','六']; switch(interval) { case‘y':partStr=myDate.getFullYear();break; case‘m':partStr=myDate.getMonth()+1;break; case‘d':partStr=myDate.getDate();break; case‘w':partStr=Week[myDate.getDay()];break; case‘ww':partStr=myDate.WeekNumOfYear();break; case‘h':partStr=myDate.getHours();break; case‘n':partStr=myDate.getMinutes();break; case‘s':partStr=myDate.getSeconds();break; } returnpartStr; } //+————————————————— //|取得当前日期所在月的最大天数 //+————————————————— Date.prototype.MaxDayOfDate=function() { varmyDate=this; varary=myDate.toArray(); vardate1=(newDate(ary[0],ary[1]+1,1)); vardate2=date1.dateAdd(1,'m',1); varresult=dateDiff(date1.Format(‘yyyy-MM-dd'),date2.Format(‘yyyy-MM-dd')); returnresult; } //+————————————————— //|取得当前日期所在周是一年中的第几周 //+————————————————— Date.prototype.WeekNumOfYear=function() { varmyDate=this; varary=myDate.toArray(); varyear=ary[0]; varmonth=ary[1]+1; varday=ary[2]; document.write(‘<scriptlanguage=VBScript>\n'); document.write(‘myDate=Datue(”+month+'-‘+day+'-‘+year+”)\n'); document.write(‘result=DatePart(‘ww',myDate)\n'); document.write('\n'); returnresult; } //+————————————————— //|字符串转成日期类型 //|格式MM/dd/YYYYMM-dd-YYYYYYYY/MM/ddYYYY-MM-dd //+————————————————— functionStringToDate(DateStr) { varconverted=Date.parse(DateStr); varmyDate=newDate(converted); if(isNaN(myDate)) { //vardelimCahar=DateStr.indexOf('/')!=-1?'/':'-'; vararys=DateStr.split('-'); myDate=newDate(arys[0],--arys[1],arys[2]); } returnmyDate; }
若要显示:当前日期加时间(如:2009-06-1212:00)
functionCurentTime() { varnow=newDate(); varyear=now.getFullYear();//年 varmonth=now.getMonth()+1;//月 varday=now.getDate();//日 varhh=now.getHours();//时 varmm=now.getMinutes();//分 varclock=year+"-"; if(month<10) clock+="0"; clock+=month+"-"; if(day<10) clock+="0"; clock+=day+""; if(hh<10) clock+="0"; clock+=hh+":"; if(mm<10)clock+='0'; clock+=mm; return(clock); }
如果大家还意犹未尽的话,还可以参考专题进一步学习《javascript时间操作汇总》、《javascript日期操作汇总》
希望本文所述对大家学习javascript程序设计有所帮助。