一波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 相关文章推荐
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
Jan 14 Javascript
javascript实现表格排序 编辑 拖拽 缩放
Jan 02 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
Jun 21 Javascript
JS给Array添加是否包含字符串的简单方法
Oct 29 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
js统计页面上每个标签的数量实例代码
May 29 Javascript
ES6 Proxy实现Vue的变化检测问题
Jun 11 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Python 必须了解的5种高级特征
2020/09/10 Python
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
机修工岗位职责
2013/11/24 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
会计工作决心书
2014/03/11 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
给老婆的保证书范文
2014/04/28 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript