js获取一组日期中最近连续的天数

用js获取一组日期(并把当天算入)中连续的天数,具体内容如下

首先得有一组日期,比如:

var arr = [
'2016/02/28',
'2016/02/29',
'2017/02/26',
'2017/02/27',
'2017/02/28'
];
//日期格式需要注意,因为考虑到要判断日期的连续性,会把该数组中元素转为时间戳;

然后要加入当前日期,获取:

var date = new Date();
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
var today = y+'/'+m+'/'+d;

转时间戳方法:

//转时间戳
function time(date){
  return new Date(date);
}

开始判断计数:

var num = 0;//声明计数变量;
var le = arr.length;//数组长度;
if(time(today)-time(arr[le-1])==86400000)
//日期时间戳相差一天则连续;判断当前日期与最近一天
{
 num=2;//满足条件,连续2天;
 //然后对数组循环判断,满足则num++;否则中断循环;
 for(var i=le; i>0; i--){
  if(time(arr[i-1])-time(arr[i-2])==86400000){
   num++;
  }else{
   break;//如果只要找出所有连续的天数,不需要中断
     }
   console.log(num);
  }
}else{
   console.log('第一天');
 }

为了方便看效果可以将当前日期初始化;

today = '2017/03/01';//为验证二月转三月特初始化;可省略

完整的:

function lianxuDay(){
     var arr = [
     '2016/02/28',
     '2016/02/29',
     '2016/02/26',
     '2017/02/27',
     '2017/02/28'
    ];
    var date = new Date();
    var y = date.getFullYear();
    var m = date.getMonth()+1;
    var d = date.getDate();
    var today = y+'/'+m+'/'+d;
    today = '2017/03/01';//为验证二月转三月特初始化;可省略
    console.log(today);
    //转时间戳
    function time(date){
     return new Date(date);
    }
    var num = 0;//声明计数变量;
    var le = arr.length;//数组长度;
    //console.log(time(today)-time(arr[le-1]));
    if(time(today)-time(arr[le-1])==86400000)
       //日期时间戳相差一天则连续,此法虽笨,但实用;判断当前日期与最近一天
    {
     num=2;//满足条件,连续2天;
     //然后对数组循环判断,满足则num++;否则中断循环;
     for(var i=le; i>0; i--){
      if(time(arr[i-1])-time(arr[i-2])==86400000){
       num++;
      }else{
       break;//如果只要找出所有连续的天数,不需要中断
      }
      console.log(num);
     }
    }else{
     console.log('第一天');
    }
   }
   lianxuDay();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JS 两日期相减,获得天数的小例子(兼容IE,FF)

    复制代码 代码如下: function GetDay() {    var arrDate, objDate1, objDate2, intDays; objDate1 = new Date();    objDate2 = new Date(); arrDate = $("#开始日期").val().split("-");    objDate1.setFullYear(arrDate[0], arrDate[1], arrDate[2]); arrDate =

  • js 日期比较相关天数代码

    复制代码 代码如下: <html> <body> <input type="text" id="Tb_Set_Time" size="10" width="200" value="2014-11-12"/> <input type="text" id="Tb_End_Time" size="10" widt

  • 用javascript实现计算两个日期的间隔天数

    ASP 里面计算两个时间的差距可以 DateDiff,但 javascript 里面没有,需要手写函数. js 里面居然可以直接 Date1-Date2,而且还是转换为毫秒计算时间差的. 复制代码 代码如下: // 计算两个日期的间隔天数  function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式   var aDate, oDate1, oDate2, iDays   aDate = sDate1.split("-"

  • javaScript 计算两个日期的天数相差(示例代码)

    一:计算两个日期相差的天数 比如:   str1  =  "2002-01-20"   str2  =  "2002-10-11"  怎样用javaScript计算出str1与str2之间相差的天数?  复制代码 代码如下: <html>  <head>  <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312"&

  • javascript比较两个日期相差天数的方法

    本文实例讲述了javascript比较两个日期相差天数的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content

  • JS简单获取日期相差天数的方法

    本文实例讲述了JS简单获取日期相差天数的方法.分享给大家供大家参考,具体如下: <html> <head> <meta charset="utf-8"> <title>JS日期相差天数</title> </head> <body> <SCRIPT LANGUAGE="JavaScript"> var s1 = '2016-05-12'; s1 = new Date(s1.

  • js获取一组日期中最近连续的天数

    用js获取一组日期(并把当天算入)中连续的天数,具体内容如下 首先得有一组日期,比如: var arr = [ '2016/02/28', '2016/02/29', '2017/02/26', '2017/02/27', '2017/02/28' ]; //日期格式需要注意,因为考虑到要判断日期的连续性,会把该数组中元素转为时间戳; 然后要加入当前日期,获取: var date = new Date(); var y = date.getFullYear(); var m = date.get

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

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

  • JS获取子窗口中返回的数据实现方法

    在开发的时候,遇到了这样一个问题,客户填写自己的收货地址,可以新建,但同时也可以选择之前填写的,由于我们的客户本身就是商户,地址繁多,把它之前的地址简单用个下拉框罗列出来显然不合适,并且客户要求能够对地址通过姓名筛选,这样,选择地址就必须再开一个小窗来完成了,那么,小窗中填写的值怎么回传呢? js有个方法showModalDialog在这种情况下用的就比较多了,其作用是打开一个模态窗口,什么事模态窗口?就是打开后不能操作父窗口,只有子窗口操作完了,关闭了,才可以继续父窗口的动作.回到最开始的问题

  • JS从一组数据中找到指定的单条数据的方法

    下面小编给大家介绍基于js如何从一组数据中找到指定的单条数据.具体方法如下所示: 在一般情况下,我们会要求后端在列表的时候输出一堆列表的JSON数据给我们,然后我们把这堆数据循环,就能在前端上显示列表了. 而我们在内容页的时候,则要求输出一个内容页的JSON数据给我们,我们就可以做内容页了. 但是,有时候,数据并不是特别复杂,我们可能需要从列表的数据中指定其中的单条数据.怎么做呢? 标准答案,find方法 var json = [{"id":1,"name":&qu

  • js获取富文本中的第一张图片(正则表达式)

    js获取富文本中的第一张图片url正则公式及去除字符串里面的html标签 后台发来一个富文本字符串里面可能包含了0.1.2.3-个图片标签(img),我们的任务是获取这个字符串里面第一张图片的url,如果没有图片则返回空 var imgUrlFun = function(str){ var data = ''; str.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/, function (match, capture) {

  • JS获取一个字符串中指定字符串第n次出现的位置

    了解类似的获取字符位置的方法: charAt() 获取字符串指定位置的字符 用法:strObj是字符串对象,index是指定的位置,(位置从0开始数) strObj.charAt(index) indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置 用法:stringObject是字符串对象,searchvalue是指定的字符串值,fromindex(可有可无)指定开始匹配字符串值的位置,若无,表示从0位置开始. stringObject.indexOf(searchvalue

  • js获取指定日期周数以及星期几的小例子

    JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 代码如下: function getNowFormatDate(theDate) { var day = theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year= day.getFullYear();// ie火狐下都可以 Month= day.getMonth()+

  • js获取指定日期前后的日期代码

    复制代码 代码如下: function getmonths(dateday){ /*获取当前日期的月份*/ var curDate = new Date(dateday); return curDate.getMonth()+1; }; function getYears(dateday){ /*获取当前日期的年份*/ var curDate = new Date(dateday); return curDate.getFullYear(); }; function getCountDays(d

  • js获取下拉列表框<option>中的value和text的值示例代码

    在编程过程中,我们对下拉列表框的取值很多时候都是获取option中的value,但是也有需要获取显示在页面中的值的时候,例如想获得<option value="value">ShowText</option>中"ShowText",我们该如何获取呢?方法很简单,具体代码如下: 复制代码 代码如下: <script type="text/javascript">function a(object){alert(o

  • JS获取农历日期具体实例

    复制代码 代码如下: <script type="text/javascript">    var CalendarData = new Array(100);    var madd = new Array(12);    var tgString = "甲乙丙丁戊己庚辛壬癸";    var dzString = "子丑寅卯辰巳午未申酉戌亥";    var numString = "一二三四五六七八九十"; 

随机推荐