一波JavaScript日期判斷腳本分享
1、比較兩個(gè)日期先后
var x = new Date('2015-05-25');
var y = new Date('2015-05-25');
if (x.getTime() == y.getTime()) {
It'll be true;
}
2、是否在兩個(gè)日期之間
var beforeSpringDate, afterSpringDate;
for (var i = 0; i < springFestivalDays.length; i++) {
beforeSpringDate = new Date(springFestivalDays[i]);
beforeSpringDate.setDate(beforeSpringDate.getDate() - 4);
afterSpringDate = new Date(springFestivalDays[i]);
afterSpringDate.setDate(afterSpringDate.getDate() + springFestivalPeriod - 1);
if (time >= beforeSpringDate.getTime() && time <= afterSpringDate.getTime()) {
result = true;
break;
}
}
3、一行代碼判斷是否是閏年
var input = new Date();new Date(input.getFullYear(), 1, 29).getDate() === 29 false var input = new Date(2012,1,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 true var input = new Date(2013,1,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 false var input = new Date(2014,1,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 false var input = new Date(2014,5,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 false var input = new Date(2014,6,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 false var input = new Date(2016,6,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 true var input = new Date(2000,6,1);new Date(input.getFullYear(), 1, 29).getDate() === 29 true
4、判斷重大節(jié)日(國(guó)慶、春節(jié))前后一周狀態(tài)
var holiday = {};
function inNationalDay(date) {
var result = {
beforeNationalDay: false,
duringNationalDay: false
};
if (date) {
var month = date.getMonth() + 1,
day = date.getDate();
if (month == 9 && (day >= 24 && day <= 30)) {
result.beforeNationalDay = true;
} else if(month == 10 && (day >= 1 && day <= 7)) {
result.duringNationalDay = true;
}
}
return result;
}
function inSpringFestival(date) {
var result = {
beforeSpringFestival: false,
duringSpringFestival: false
};
if (date) {
// set GMT+0800 hours(set china hour +8)
date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 8);
var time = date.getTime();
var springFestivalDays = ['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'];
var springDay, springDate, beforeSpringDate, afterSpringDate;
for (var i = 0; i < springFestivalDays.length; i++) {
springDay = springFestivalDays[i];
springDate = new Date(springDay);
beforeSpringDate = new Date(springDay);
beforeSpringDate.setDate(beforeSpringDate.getDate() - 7);
afterSpringDate = new Date(springDay);
afterSpringDate.setDate(afterSpringDate.getDate() + 7);
if (time >= beforeSpringDate.getTime() && time < springDate.getTime()) {
result.beforeSpringFestival = true;
break;
} else if (time >= springDate.getTime() && time < afterSpringDate.getTime()) {
result.duringSpringFestival = true;
break;
}
}
}
return result;
}
holiday.cache = {
lastUpdateDate: null,
beforeHoliday: false,
duringHoliday: false
};
holiday.checkHoliday = function() {
var now = new Date();
if (!holiday.cache.lastUpdateDate) {
holiday.cache.lastUpdateDate = now;
var nationalDayResult = inNationalDay(now);
var springFestivalResult = inSpringFestival(now);
holiday.cache.beforeHoliday = nationalDayResult.beforeNationalDay || springFestivalResult.beforeSpringFestival;
holiday.cache.duringHoliday = nationalDayResult.duringNationalDay || springFestivalResult.duringSpringFestival;
} else {
var lastUpdateDate = holiday.cache.lastUpdateDate;
var cacheDate = lastUpdateDate.getFullYear() + '' + lastUpdateDate.getMonth() + '' + lastUpdateDate.getDate();
var nowDate = now.getFullYear() + '' + now.getMonth() + '' + now.getDate();
if (cacheDate != nowDate) {
holiday.cache.lastUpdateDate = now;
var nationalDayResult = inNationalDay(now);
var springFestivalResult = inSpringFestival(now);
holiday.cache.beforeHoliday = nationalDayResult.beforeNationalDay || springFestivalResult.beforeSpringFestival;
holiday.cache.duringHoliday = nationalDayResult.duringNationalDay || springFestivalResult.duringSpringFestival;
}
}
};
module.exports = holiday;
5、判斷星期幾
<SCRIPT>
var s = '2011-11-17';
alert( "今天星期 "+"天一二三四五六 ".charAt(new Date(s).getDay()));
alert("星期 " + new Date(s).getDay());
</SCRIPT>
也可以這樣:
var weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; var dateStr = "2008-08-08"; var myDate = new Date(Date.parse(dateStr.replace(/-/g, "/"))); alert(weekDay[myDate.getDay()]);
相關(guān)文章
JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法,涉及javascript數(shù)組遍歷與排序的相關(guān)技巧,需要的朋友可以參考下2015-06-06
無(wú)閃爍更新網(wǎng)頁(yè)內(nèi)容JS實(shí)現(xiàn)
這篇文章主要介紹了無(wú)閃爍更新網(wǎng)頁(yè)內(nèi)容JS實(shí)現(xiàn),有需要的朋友可以參考一下2013-12-12
js判斷兩個(gè)數(shù)組相等的5種方法實(shí)例
再最近的一次實(shí)際項(xiàng)目開(kāi)發(fā)中,又遇到了需要對(duì)兩個(gè)數(shù)組內(nèi)容進(jìn)行比較的需求,索性整理下,這篇文章主要給大家介紹了關(guān)于js判斷兩個(gè)數(shù)組相等的5種方法,需要的朋友可以參考下2022-05-05
js實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
利用JS自動(dòng)打開(kāi)頁(yè)面上鏈接的實(shí)現(xiàn)代碼
今天經(jīng)過(guò)測(cè)試,實(shí)現(xiàn)了利用JS來(lái)自動(dòng)打開(kāi)頁(yè)面上的鏈接的功能,其實(shí)比較簡(jiǎn)單,就是在頁(yè)面上把鏈接列表列出來(lái),然后通過(guò)JQuery的相關(guān)控制,在框架頁(yè)中把鏈接打開(kāi),具體能做什么用,大家自己想,哈哈。2011-09-09
A標(biāo)簽中通過(guò)href和onclick傳遞的this對(duì)象實(shí)現(xiàn)思路
想傳遞當(dāng)前對(duì)象給一個(gè)函數(shù),于是就將這個(gè)URL寫成"Javascript:shoControlSidebar(this)",可是結(jié)果發(fā)現(xiàn)這并不可行,接下來(lái)為大家詳細(xì)介紹下解決方法2013-04-04
webpack踩坑系列之less-loader6.0.0的javascriptEnabled報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了webpack踩坑系列之less-loader6.0.0的javascriptEnabled報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
JS回調(diào)函數(shù) callback的理解與使用案例分析
這篇文章主要介紹了JS回調(diào)函數(shù) callback的理解與使用,結(jié)合具體案例形式分析了javascript回調(diào)函數(shù)的功能、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09

