一波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操作Visual Viewport的方法示例
在现代前端开发中,视口(viewport)是一个非常重要的概念,它决定了用户在浏览网页时所看到的内容,JavaScript 提供了一个强大的接口 —— Visual Viewport API,让开发者可以更灵活地控制和获取视口的信息,本文将详细介绍如何使用 Visual Viewport API2024-09-09JavaScript高级程序设计 XML、Ajax 学习笔记
JavaScript高级程序设计 XML、Ajax 学习笔记,需要的朋友可以参考下。2011-09-09微信小程序用户授权获取手机号(getPhoneNumber)
这篇文章主要给大家介绍了关于微信小程序用户授权获取手机号的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
这篇文章主要介绍了JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)的相关资料,需要的朋友可以参考下2016-05-05
最新评论