一波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 相关文章推荐
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
返回对象在当前级别中是第几个元素的实现代码
Jan 20 Javascript
JQuery 选择器、过滤器介绍
Feb 14 Javascript
jquery 定位input元素的几种方法小结
Jul 28 Javascript
微信小程序 教程之模块化
Oct 17 Javascript
修改npm全局安装模式的路径方法
May 15 Javascript
Vue-不允许嵌套式的渲染方法
Sep 13 Javascript
微信小程序实现留言功能
Oct 31 Javascript
详解Vue之事件处理
Jul 10 Javascript
vue - props 声明数组和对象操作
Jul 30 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
Numpy之reshape()使用详解
2019/12/26 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
小饰品店的创业计划书范文
2013/12/28 职场文书
毕业自我评价
2014/02/05 职场文书
批评与自我批评材料
2014/02/15 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
工程服务质量承诺书
2015/04/29 职场文书
新生开学寄语大全
2015/05/28 职场文书
公司员工奖惩制度
2015/08/04 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript