一波JavaScript日期判断脚本分享


Posted in Javascript onMarch 06, 2016

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 相关文章推荐
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
jQuery textarea的长度进行验证
May 06 Javascript
运用jquery实现table单双行不同显示并能单行选中
Jul 25 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
js实时获取系统当前时间实例代码
Jun 28 Javascript
innerText 使用示例
Jan 23 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
ajax如何实现页面局部跳转与结果返回
Aug 24 Javascript
js简单时间比较的方法
Aug 02 Javascript
JS实现在文本指定位置插入内容的简单示例
Dec 22 Javascript
微信小程序点击滚动到指定位置的实现
May 22 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 #Javascript
JavaScript实现数据类型的相互转换
Mar 06 #Javascript
在React框架中实现一些AngularJS中ng指令的例子
Mar 06 #Javascript
javascript实现label标签跳出循环操作
Mar 06 #Javascript
使用JavaScript脚本判断页面是否在微信中被打开
Mar 06 #Javascript
JavaScript实现图片滑动切换的代码示例分享
Mar 06 #Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 #Javascript
You might like
SONY ICF-SW7600的电路分析
2021/03/02 无线电
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
Document 对象的常用方法
2009/07/31 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
Python中的yield浅析
2014/06/16 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
Python快速从注释生成文档的方法
2016/12/26 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
迎八一活动主题
2014/01/31 职场文书
作弊检讨书1000字
2014/02/01 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
2015感人爱情寄语
2015/02/26 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
Python 实现Mac 屏幕截图详解
2021/10/05 Python