JavaScript

超轻量级php框架startmvc

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

更新时间:2020-05-14 07:54:01 作者:startmvc
用js获取一组日期(并把当天算入)中连续的天数,具体内容如下首先得有一组日期,比如:vararr

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

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

js获取日期最近连续天数 js获取日期 js获取最近连续天数