一波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()]);