一波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 相关文章推荐
JSQL  一个 web DB 的封装
May 05 Javascript
jQuery中nextAll()方法用法实例
Jan 07 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
Apr 01 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
Oct 19 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
webpack 插件html-webpack-plugin的具体使用
Apr 09 Javascript
解析vue路由异步组件和懒加载案例
Jun 08 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
在vue中使用防抖函数组件操作
Jul 26 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
PHP防注入安全代码
2008/04/09 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHP实现的CURL非阻塞调用类
2018/07/26 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
上课迟到检讨书
2014/01/19 职场文书
优秀求职信范文分享
2014/01/26 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
晚会开场白和结束语
2015/05/29 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
会议承办单位欢迎词
2019/07/09 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书