【www.bbyears.com--js教程】
word-wrap: break-word; margin: 5px 0px; color: rgb(0, 0, 0); font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13.3333px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;">用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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。