一波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 相关文章推荐
如何用js控制css中的float的代码
Aug 16 Javascript
js+css在交互上的应用
Jul 18 Javascript
网易JS面试题与Javascript词法作用域说明
Nov 09 Javascript
javascript中处理时间戳为日期格式的方法
Jan 02 Javascript
jQuery点击其他地方时菜单消失的实现方法
Apr 22 Javascript
jQuery 常用代码集锦(必看篇)
May 16 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
JS定时器实现数值从0到10来回变化
Dec 09 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
在vue-cli3中使用axios获取本地json操作
Jul 30 Javascript
vue项目中使用rem,在入口文件添加内容操作
Nov 11 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
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
利用php输出不同的心形图案
2016/04/22 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
处理Python中的URLError异常的方法
2015/04/30 Python
python获取mp3文件信息的方法
2015/06/15 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
大专毕业自我鉴定
2014/02/04 职场文书
商业融资计划书
2014/04/29 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang