这篇文章主要介绍了一波 JavaScript 日期判断脚本分享, 包括计算日期是否在时间段内即闰年的判断等, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
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()]);
来源: http://www.phperz.com/article/17/0302/266802.html