您好,登錄后才能下訂單哦!
用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();
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。