用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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“js获取一组日期中最近连续的天数”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。