一波JavaScript日期判断脚本分享

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()]);
(0)

相关推荐

  • javascript 判断两个日期之差的示例代码

    日期差我们需要像php中一样把如2015-08-30这种转换成秒之后再利用两个日期的秒数进行相减之后再加起判断就可以了,如果判断日期相等就简单多了在文章最后有例子说明. 例子1,日期之差函数 function better_time(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var strDateArrayStart; var strDateArrayEnd; var intDay; strDateArraySt

  • js判断日期时间有效性的方法

    分享两种使用javascript验证日期以及时间是否有效的方法 第一种: //| 日期有效性验证 //| 格式为:YYYY-MM-DD或YYYY/MM/DD function IsValidDate(DateStr){ var sDate=DateStr.replace(/(^\s+|\s+$)/g,'');//去两边空格; if(sDate==''){ return true; } //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或

  • 如何用javascript判断录入的日期是否合法

    复制代码 代码如下: function IsValidYear(psYear) {     var sYear = new String(psYear); if(psYear==null)     {         return false;     } if(isNaN(psYear)==true)     {         return false;     } if(sYear == "")     {         return true;     } if(sYear.

  • 纯javascript判断查询日期是否为有效日期

    以下内容主要通过js代码给大家介绍,代码比较简单,包含注释,有好的建议欢迎提出. 如下图,当查询条件含有日期时,如"2012-3-4",查询前校验输入的日期字符串是否为有效的日期 var snapshot_createTime_begin=$(selector+" input[name='createTime_begin']").val().trim(); var snapshot_createTime_end=$(selector +" input[na

  • JS判断日期格式是否合法的简单实例

    类似于PHP中的Checkdate. //函数名:CheckDateTime //功能介绍:检查是否为日期时间 function CheckDateTime(str){ var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null)return false; r[2]=r[2]-1; var d= new Date(r[1], r[2],r[3],

  • js 判断一组日期是否是连续的简单实例

    这是群里一朋友问的问题,当时我说判断下 day 是否相邻即可,后来细想,发现完全不对. 问题需求 给定5个相同格式的日期,怎么判断是否是连续5天呢? 我当时第一反应 getDay() 后排序,然后前后对比即可.. 但是细想,完全不对,比如本周一下周二,这样也会误判. 而且不仅仅这样的问题,还要跨月,跨年,闰月等问题. 然后就有了下面的代码. 让时间戳抹平一切吧 为了不纠结这些问题,我想到了时间戳,这货就可以完全忽略上述问题了,只要处理时间戳,最后比较即可. 然后我给了如下代码: let days

  • 一波JavaScript日期判断脚本分享

    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

  • 5个最佳的Javascript日期处理类库分享

    在大家日常网站开发和web应用开发中,我们往往需要有效的调用Javascript处理日期和时间格式相关的函数,在Javascript中已经包含了部分最基本的内建处理方法.当然如果大家有时间的话,完全可以自己开发和编写需要的方法,但是有效的使用别人已经开发好的类库肯定是一个更好的处理方式,没有必要什么都原创吧,君子善假于物也.今天这里我们收集了5个最佳的日期处理函数类库,希望对于大家有帮助,如果你喜欢我们的文章,请大家给我们留言,谢谢! 1. XDate 这个类库是javascript本地日期对象

  • javascript日期格式化示例分享

    复制代码 代码如下: /**   * 格式化日期   * @param {Object} ms 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间的毫秒数   * @return year-month-date hh:mm   */   Util.parseToDate = function(ms){            var date = (new Date(parseInt(ms)));          return formatDate(date,"yyyy-MM-dd

  • JavaScript日期选择功能示例

    本文实例讲述了JavaScript日期选择功能.分享给大家供大家参考,具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title>javascript日期选择</title> <style type="text/css"> option{ width:150px;

  • javascript日期计算实例分析

    本文实例讲述了javascript日期计算.分享给大家供大家参考.具体如下: function setLeaveDate(){ var inDay=$("#date_6").val(); // 获取的日期格式为2014-07-03 var date=inDay.split('-'); // 将日期分隔成数字 var num=$(".time_lk").val()*1; // 需增加的天数 var year=date[0]*1; var month=date[1]*1

  • 分享JavaScript 类型判断的几种方法

    目录 一.JavaScript 基本类型 1.原始数据类型 2.引用数据类型 3.两种数据类型的存储方式 二.Javascript 数据类型判断的几种方法 1.typeof 2.instanceof 3.构造函数(constructor) 4.Object.prototype.toString.call() 三.写在最后 一.JavaScript 基本类型 首先介绍一下JavaScript中的八大基本类型 1.原始数据类型 除对象类型(object)以外的其它任何类型定义的不可变的值(值本身无法

  • 基于JavaScript表单脚本(详解)

    什么是表单? 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等. 表单按钮:包括提交按钮.复位按钮和一般按钮:用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作. JavaScript与表单间的关系:JS最初的应用就是用于分担服务器处理表单的责任,打破依赖服务器的局面,尽管目前web和jav

  • JavaScript简单判断复选框是否选中及取出值的方法

    本文实例讲述了JavaScript简单判断复选框是否选中及取出值的方法.分享给大家供大家参考.具体如下: 这里使用JavaScript 获取复选框的值,有朋友在刚开始利用表单提交数据的时候,一般都会遇到表单中有一个特别的元素--复选框,判断它是否选中以及获取它的值 ,好像跟其它的表单元素有点不一样,本代码将为您展示如何获取复选框的值并判断是否被选中. 运行效果如下图所示: 具体代码如下: <title>JavaScript 获取复选框的值</title> <script>

  • javascript简单判断输入内容是否合法的方法

    本文实例讲述了javascript简单判断输入内容是否合法的方法.分享给大家供大家参考,具体如下: 关于检测用户输入的内容是否有非法的字符检测实现思路 1.定义合法的字符串(源字符串) 2.获取用户输入的内容 3.循环的取出用户输入的每一个字符,去源字符串中查找   1).查找到了,返回字符串查找的位置   2).没有找到返回-1,我们正好利用-1检测用户输入的内容是否合法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//

  • Javascript日期格式化format函数的使用方法

    前言 Javascript日期格式化在日常开发中还是挺常见的,那么下面就给大家分享Javascript时间格式format函数的两种使用方法示例,一起来看看. 方法一 Date.prototype.pattern=function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours()%12 == 0 ? 1

随机推荐