一波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 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
三种取消选中单选框radio的方法
Sep 09 Javascript
JavaScript中最简洁的编码html字符串的方法
Oct 11 Javascript
自己动手手写jQuery插件总结
Jan 20 Javascript
原生js实现商品放大镜效果
Jan 12 Javascript
JavaScript实现审核流程状态的动态显示进度条
Mar 15 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
Nov 24 Javascript
vue实现公告栏文字上下滚动效果的示例代码
Jun 16 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
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中关于长度计算容易混淆的问题分析
2016/05/27 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Tensorflow实现在训练好的模型上进行测试
2020/01/20 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
一套软件测试笔试题
2014/07/25 面试题
企业年度评优方案
2014/06/02 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python