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

 
js如何获取一组日期中最近连续的天数
2017-06-03 05:43:47 /故事大全

用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();

所属专题:
如果您觉得本文或图片不错,请把它分享给您的朋友吧!

 
搜索
 
 
广告
 
 
广告
 
故事大全
 
版权所有- © 2012-2015 · 故事大全 SITEMAP站点地图-Foton Auman手机看故事 站点地图-Foton Auman