js返回一组日期中最近连续的天数
用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 判断一组日期是否是连续的
文章同步自个人博客:http://www.52cik.com/2016/07/10/consecutive-dates.html 这是群里一朋友问的问题,当时我说判断下 day 是否相邻即可,后来细想 ...
- JS返回一个字符串中长度最小的单词的长度
题目:编写一个方法,返回字符串中最小长度的单词的长度. var str = 'What a good day today!'; 1 //方法一 2 function returnString1(str ...
- JS 求一组数中所有数的和以及平均值
var arr = [10,20,30]; //计数器思想 var sum = 0; for(var i=0;i<arr.length;i++){ sum += arr[i]; } consol ...
- js怎样得出数组中某个数据最大连续出现的次数
1:js怎样得出数组中某个数据最大连续出现的次数 var test=[1,2,3,3,2,2,2,3,3,3,3,5,3,3,3,3,3] ; var j = 0 ; var max ...
- 高并发分布式系统中生成全局唯一(订单号)Id js返回上一页并刷新、返回上一页、自动刷新页面 父页面操作嵌套iframe子页面的HTML标签元素 .net判断System.Data.DataRow中是否包含某列 .Net使用system.Security.Cryptography.RNGCryptoServiceProvider类与System.Random类生成随机数
高并发分布式系统中生成全局唯一(订单号)Id 1.GUID数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么通过组合的方式,保留GUID的10个字节,用另6个字节表示GUID生成的时间(D ...
- Jsの数组练习-求一组数中的最大值和最小值,以及所在位置
要求:求一组数中的最大值和最小值,以及所在位置 代码实现: <!DOCTYPE html> <html lang="en"> <head> &l ...
- JS[获取两个日期中所有的月份]
//------[获取两个日期中所有的月份中] function getMonthBetween(start,end){ var result = []; var s = start.split(&q ...
- JS window对象 返回浏览历史中的其他页面 go()方法,根据当前所处的页面,加载 history 列表中的某个具体的页面。 语法: window.history.go(number);
返回浏览历史中的其他页面 go()方法,根据当前所处的页面,加载 history 列表中的某个具体的页面. 语法: window.history.go(number); 参数: 浏览器中,返回当前页面 ...
- js 时间戳转为日期格式
原文:js 时间戳转为日期格式 js 时间戳转为日期格式 什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time) ...
随机推荐
- 线程TLAB局部缓存区域(Thread Local Allocation Buffer)
TLAB(Thread Local Allocation Buffer) 1,堆是JVM中所有线程共享的,因此在其上进行对象内存的分配均需要进行加锁,这也导致了new对象的开销是比较大的 2,Sun ...
- 指定nginx某个目录显示目录结构
1.修改配置文件/usr/local/nginx/conf/nginx.conf 指定目录,开启autoindex为on. location /study { autoindex on; } 2. 保 ...
- VSTO学习(二)——Excel对象模型
要开发Excel的项目,就自然少不了对Excel对象模型的了解了,只有了解Excel对象模型,这样才能更好地对Excel进行处理.下面先给出一张Excel对象模型的图: 下面就具体对上图中的各个对象做 ...
- python的 del 函数是删对象还是删引用
1.首先介绍下python的对象引用 1)Python中不存在传值调用,一切传递的都是对象引用,也可以认为是传址调用.即Python不允许程序员选择采用传值或传引用.Python参数传递采用的是“传对 ...
- Django和DateTimeField
问一下大家,你们用ORM创建表的时候,DateTimeField字段中的数据取出来放在前端,你们都是怎么做的? 不满你们说,我以前要不然是使用默认的方法,要不然就是自己写个tag或者其他的来格式化一下 ...
- springboot自定义错误页面
springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { re ...
- Android启动流程
Android是一个基于Linux的开源操作系统.x86(x86是一系列的基于intel 8086 CPU的计算机微处理器指令集架构)是linux内核部署最常见的系统.然而,所有的Android设备都 ...
- 《Android应用性能优化》1——代码
1.Java代码优化 1.1 代码执行 通常情况下,不必看应用的字节码.在平台是Android2.2(Froyo)和更高版本的情况下尤其如此,因在Android2.2中引入了实时(JIT)的编译器.D ...
- Android硬件抽象层(HAL)深入剖析(二)【转】
上一篇我们分析了android HAL层的主要的两个结构体hw_module_t(硬件模块)和hw_device_t(硬件设备)的成员,下面我们来具体看看上层app到底是怎么实现操作硬件的? 我们知道 ...
- 图解-安卓中调用OpenGL
游戏开发中经常使用到OpenGL,当然很多人都喜欢直接用现有的游戏引擎,但相信了解的更多对你没有坏处 安卓开发中,采用的OpenGL ex2的规范,前几天看了下这个规范,整体上难度比1.0规范难度加大 ...