一波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闭包的简单应用

    JavaScript闭包的简单应用

    这篇文章主要为大家详细介绍了JavaScript闭包的简单应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 关于Javascript作用域链的八点总结

    关于Javascript作用域链的八点总结

    其实吧,关于作用域链相关的文章我也看了不少,但是我一直也没能做一个详细的总结,今天把我看到的一些东西,结合自己的想法,总结成以下8个点
    2013-12-12
  • javascript Promise简单学习使用方法小结

    javascript Promise简单学习使用方法小结

    下面小编就为大家带来一篇javascript Promise简单学习使用方法小结。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • js验证真实姓名与身份证号,手机号的简单实例

    js验证真实姓名与身份证号,手机号的简单实例

    下面小编就为大家带来一篇js验证真实姓名与身份证号,手机号的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • JS仿Windows实现桌面主题特效

    JS仿Windows实现桌面主题特效

    这篇文章主要介绍了如何利用HTML+CSS+JS模仿Windows实现桌面主题特效,文中的示例代码讲讲详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-06-06
  • js实现无缝循环滚动

    js实现无缝循环滚动

    这篇文章主要为大家详细介绍了js实现无缝循环滚动的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • 为什么JavaScript中0.1 + 0.2 != 0.3

    为什么JavaScript中0.1 + 0.2 != 0.3

    这篇文章主要给大家介绍了关于为什么JavaScript中0.1 + 0.2 != 0.3的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • div浮层,滚动条移动,位置保持不变的4种方法汇总

    div浮层,滚动条移动,位置保持不变的4种方法汇总

    这篇文章主要是对div浮层,滚动条移动,位置保持不变的4种方法进行了汇总介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 聊聊JavaScript中.?、??、??=的用法以及含义

    聊聊JavaScript中.?、??、??=的用法以及含义

    今天项目中突然遇到了不太明白的写法,下面这篇文章主要给大家介绍了关于JavaScript中.?、??、??=的用法以及含义的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 获取元素距离浏览器周边的位置的方法getBoundingClientRect

    获取元素距离浏览器周边的位置的方法getBoundingClientRect

    本文为大家介绍下如何使用getBoundingClientRect()方法获取元素距离浏览器周边的位置,有类似问题的朋友可以参考下哈,希望对你学习js有所帮助
    2013-04-04

最新评论