一波JavaScript日期判断脚本分享
1、比较两个日期先后
varx=newDate('2015-05-25'); vary=newDate('2015-05-25'); if(x.getTime()==y.getTime()){ It'llbetrue; }
2、是否在两个日期之间
varbeforeSpringDate,afterSpringDate; for(vari=0;i<springFestivalDays.length;i++){ beforeSpringDate=newDate(springFestivalDays[i]); beforeSpringDate.setDate(beforeSpringDate.getDate()-4); afterSpringDate=newDate(springFestivalDays[i]); afterSpringDate.setDate(afterSpringDate.getDate()+springFestivalPeriod-1); if(time>=beforeSpringDate.getTime()&&time<=afterSpringDate.getTime()){ result=true; break; } }
3、一行代码判断是否是闰年
varinput=newDate();newDate(input.getFullYear(),1,29).getDate()===29 false varinput=newDate(2012,1,1);newDate(input.getFullYear(),1,29).getDate()===29 true varinput=newDate(2013,1,1);newDate(input.getFullYear(),1,29).getDate()===29 false varinput=newDate(2014,1,1);newDate(input.getFullYear(),1,29).getDate()===29 false varinput=newDate(2014,5,1);newDate(input.getFullYear(),1,29).getDate()===29 false varinput=newDate(2014,6,1);newDate(input.getFullYear(),1,29).getDate()===29 false varinput=newDate(2016,6,1);newDate(input.getFullYear(),1,29).getDate()===29 true varinput=newDate(2000,6,1);newDate(input.getFullYear(),1,29).getDate()===29 true
4、判断重大节日(国庆、春节)前后一周状态
varholiday={}; functioninNationalDay(date){ varresult={ beforeNationalDay:false, duringNationalDay:false }; if(date){ varmonth=date.getMonth()+1, day=date.getDate(); if(month==9&&(day>=24&&day<=30)){ result.beforeNationalDay=true; }elseif(month==10&&(day>=1&&day<=7)){ result.duringNationalDay=true; } } returnresult; } functioninSpringFestival(date){ varresult={ beforeSpringFestival:false, duringSpringFestival:false }; if(date){ //setGMT+0800hours(setchinahour+8) date=newDate(date.getFullYear(),date.getMonth(),date.getDate(),8); vartime=date.getTime(); varspringFestivalDays=['2015-02-19','2016-02-08','2017-01-28','2018-02-16','2019-02-05', '2020-01-25','2021-02-12','2022-02-01','2023-01-22','2024-02-10']; varspringDay,springDate,beforeSpringDate,afterSpringDate; for(vari=0;i<springFestivalDays.length;i++){ springDay=springFestivalDays[i]; springDate=newDate(springDay); beforeSpringDate=newDate(springDay); beforeSpringDate.setDate(beforeSpringDate.getDate()-7); afterSpringDate=newDate(springDay); afterSpringDate.setDate(afterSpringDate.getDate()+7); if(time>=beforeSpringDate.getTime()&&time<springDate.getTime()){ result.beforeSpringFestival=true; break; }elseif(time>=springDate.getTime()&&time<afterSpringDate.getTime()){ result.duringSpringFestival=true; break; } } } returnresult; } holiday.cache={ lastUpdateDate:null, beforeHoliday:false, duringHoliday:false }; holiday.checkHoliday=function(){ varnow=newDate(); if(!holiday.cache.lastUpdateDate){ holiday.cache.lastUpdateDate=now; varnationalDayResult=inNationalDay(now); varspringFestivalResult=inSpringFestival(now); holiday.cache.beforeHoliday=nationalDayResult.beforeNationalDay||springFestivalResult.beforeSpringFestival; holiday.cache.duringHoliday=nationalDayResult.duringNationalDay||springFestivalResult.duringSpringFestival; }else{ varlastUpdateDate=holiday.cache.lastUpdateDate; varcacheDate=lastUpdateDate.getFullYear()+''+lastUpdateDate.getMonth()+''+lastUpdateDate.getDate(); varnowDate=now.getFullYear()+''+now.getMonth()+''+now.getDate(); if(cacheDate!=nowDate){ holiday.cache.lastUpdateDate=now; varnationalDayResult=inNationalDay(now); varspringFestivalResult=inSpringFestival(now); holiday.cache.beforeHoliday=nationalDayResult.beforeNationalDay||springFestivalResult.beforeSpringFestival; holiday.cache.duringHoliday=nationalDayResult.duringNationalDay||springFestivalResult.duringSpringFestival; } } }; module.exports=holiday;
5、判断星期几
<SCRIPT> vars='2011-11-17'; alert("今天星期"+"天一二三四五六".charAt(newDate(s).getDay())); alert("星期"+newDate(s).getDay()); </SCRIPT>
也可以这样:
varweekDay=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]; vardateStr="2008-08-08"; varmyDate=newDate(Date.parse(dateStr.replace(/-/g,"/"))); alert(weekDay[myDate.getDay()]);