1、比較兩個日期先後
var x = new Date('2015-05-25'); var y = new Date('2015-05-25'); if (x.getTime() == y.getTime()) { It'll be true; }
2、是否在兩個日期之間
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、判斷重大節日(國慶、春節)前後一週狀態
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()]);