一波JavaScript日期判断脚本分享
更新时间:2016年03月06日 16:58:14 作者:qiaolevip
这篇文章主要介绍了一波JavaScript日期判断脚本分享,包括计算日期是否在时间段内即闰年的判断等,需要的朋友可以参考下
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()]);
相关文章
为什么JavaScript中0.1 + 0.2 != 0.3
这篇文章主要给大家介绍了关于为什么JavaScript中0.1 + 0.2 != 0.3的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
获取元素距离浏览器周边的位置的方法getBoundingClientRect
本文为大家介绍下如何使用getBoundingClientRect()方法获取元素距离浏览器周边的位置,有类似问题的朋友可以参考下哈,希望对你学习js有所帮助2013-04-04


最新评论