一聚教程网:一个值得你收藏的教程网站

热门教程

利用js获取一组日期中最近连续天数的代码实例

时间:2022-06-29 00:41:28 编辑:袖梨 来源:一聚教程网

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

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

 

 代码如下复制代码

vararr = [

񟭐/02/28',

񟭐/02/29', 

񟭑/02/26', 

񟭑/02/27',

񟭑/02/28'

]; 

 

//日期格式需要注意,因为考虑到要判断日期的连续性,会把该数组中元素转为时间戳;

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

 

 代码如下复制代码

vardate =newDate();

vary = date.getFullYear();

varm = date.getMonth()+1;

vard = date.getDate();

vartoday = y+'/'+m+'/'+d;

转时间戳方法:

//转时间戳 

functiontime(date){

  returnnewDate(date); 

}

 

开始判断计数:

 

 代码如下复制代码

varnum = 0;//声明计数变量;

varle = arr.length;//数组长度;

if(time(today)-time(arr[le-1])==86400000)

//日期时间戳相差一天则连续;判断当前日期与最近一天

{

 num=2;//满足条件,连续2天;

 //然后对数组循环判断,满足则num++;否则中断循环;

 for(vari=le; i>0; i--){

  if(time(arr[i-1])-time(arr[i-2])==86400000){

   num++; 

  }else{ 

   break;//如果只要找出所有连续的天数,不需要中断

     }

   console.log(num);

  } 

}else{

   console.log('第一天');

 }

 

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

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

完整的:

 

 代码如下复制代码

functionlianxuDay(){

     vararr = [

     񟭐/02/28',

     񟭐/02/29', 

     񟭐/02/26', 

     񟭑/02/27',

     񟭑/02/28'

    ];

    vardate =newDate();

    vary = date.getFullYear();

    varm = date.getMonth()+1;

    vard = date.getDate();

    vartoday = y+'/'+m+'/'+d;

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

    console.log(today);

    //转时间戳 

    functiontime(date){

     returnnewDate(date); 

    }

    varnum = 0;//声明计数变量;

    varle = arr.length;//数组长度;

    //console.log(time(today)-time(arr[le-1]));

    if(time(today)-time(arr[le-1])==86400000)

       //日期时间戳相差一天则连续,此法虽笨,但实用;判断当前日期与最近一天

    {

     num=2;//满足条件,连续2天;

     //然后对数组循环判断,满足则num++;否则中断循环;

     for(vari=le; i>0; i--){

      if(time(arr[i-1])-time(arr[i-2])==86400000){

       num++; 

      }else{ 

       break;//如果只要找出所有连续的天数,不需要中断

      }

      console.log(num);

     } 

    }else{

     console.log('第一天');

    }

   }

   lianxuDay();

 

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

热门栏目