js返回一组日期中最近连续的天数
2024-09-24 08:45:20
用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();
最新文章
- Pod 的安装
- 转:jquery选择器总结
- CDH介绍
- kuangbin_UnionFind J (POJ 2492)
- [改善Java代码]在接口中不要存在实现代码
- vbe6ext.olb不能被加载 宏内存溢出
- Redis实战之征服 Redis + Jedis + Spring (二)
- LAMP 搭建wordpress部署教程贴.
- redis 学习笔记一
- poj1363
- C. Ayoub and Lost Array
- 【BZOJ5294】[BJOI2018]二进制(线段树)
- 连号区间数|2013年蓝桥杯B组题解析第十题-fishers
- python爬虫训练——正则表达式+BeautifulSoup爬图片
- SQLServer 学习笔记之超详细基础SQL语句 Part 3
- 构建-4 dependencies 依赖管理
- query:callback
- LR学习资料
- Tcp 编程 的时代 已经到来
- Dubbo架构设计详解(转载)
热门文章
- C语言的组成 以及预编译
- 恢复xfs文件系统superblock实验
- centos安装 Anaconda3及使用
- 【xsy1097】 拼图 构造题
- java数据结构之二叉树遍历的非递归实现
- docker 查看拉取镜像源地址
- Mac OS配置Android SDK环境变量(当不存在 .bash_profile 文件的时候)
- HUE配置文件hue.ini 的hdfs_clusters模块详解(图文详解)(分HA集群和非HA集群)
- sass中@的作用
- php的isset()和empty()区别