JavaScript 计算日期数组中最近连续天数
作者:拾光时间:2026-10-22 04:20:48浏览:657
本文介绍如何使用 JavaScript 计算给定日期数组中最近连续的天数。核心思路是将日期转换为时间戳,通过判断相邻日期差值是否为 86400000 毫秒(即一天)来统计连续区间。代码包含将当前日期加入数组、转换时间戳及循环判断逻辑,并提供了完整的函数示例。
JavaScript 计算日期数组中最近连续天数
使用 JavaScript 计算一组日期(包含当天)中连续的天数,具体实现如下。
首先需要准备一组日期数据,例如:
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处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
