获取某个时间开始 之后的 N次[周几,周几]
生活随笔
收集整理的這篇文章主要介紹了
获取某个时间开始 之后的 N次[周几,周几]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
廢話不多說,直接上菜!
調用函數代碼舉例
//PS :這里需要注意的是 周日 是 0 !!!!!console.log(getBeforeDate(-10000)) //一萬天之后的日期console.log(getWeek('2019-07-03',[2,3],20))//從'2019-07-03' 開始獲取之后 20 個 周二、周三的日期JS代碼
/*** 獲取某個時間開始 之后的 N次[周幾,周幾]* @param {Object} begin 開始時間* @param {Object} week_arr 需要獲取的周幾數組* @param {Object} Max 需要獲取數組最大長度*/function getWeek (begin, week_arr,Max){var dateArr = new Array();var stimeArr = begin.split("-");//=>["2018", "01", "01"]var etimeArr = getBeforeDate(-10000).split("-");//=>["2018", "01", "30"] 這里我給了一個10000天后的一起可更具需求更改var stoday = new Date();stoday.setUTCFullYear(stimeArr[0], stimeArr[1]-1, stimeArr[2]);var etoday = new Date();etoday.setUTCFullYear(etimeArr[0], etimeArr[1]-1, etimeArr[2]);var unixDb = stoday.getTime();//開始時間的毫秒數var unixDe = etoday.getTime();//結束時間的毫秒數for (var k = unixDb; k <= unixDe;) {//達到最大次數時,結束循環if(dateArr.length==Max){break;}else{let needJudgeDate = msToDate(parseInt(k)).withoutTime;//不加這個if判斷直接push的話就是已知時間段內的所有日期$.each(week_arr, function(i,o) {if (new Date(needJudgeDate).getDay() === o) {dateArr.push(needJudgeDate);}})k = k + 24*60*60*1000;}}return dateArr;}//根據毫秒數獲取日期 function msToDate (msec) {let datetime = new Date(msec);let year = datetime.getFullYear();let month = datetime.getMonth();let date = datetime.getDate();let hour = datetime.getHours();let minute = datetime.getMinutes();let second = datetime.getSeconds();let result1 = year +'-' +((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +'-' +((date + 1) < 10 ? '0' + date : date) +' ' +((hour + 1) < 10 ? '0' + hour : hour) +':' +((minute + 1) < 10 ? '0' + minute : minute) +':' +((second + 1) < 10 ? '0' + second : second);let result2 = year +'-' +((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +'-' +((date + 1) < 11 ? '0' + date : date);let result = {hasTime: result1,withoutTime: result2};return result; }//-----[獲取前n天的日期] function getBeforeDate(n) {var n = n;var d = new Date();var year = d.getFullYear();var mon = d.getMonth() + 1;var day = d.getDate();if(day <= n) {if(mon > 1) {mon = mon - 1;} else {year = year - 1;mon = 12;}}d.setDate(d.getDate() - n);year = d.getFullYear();mon = d.getMonth() + 1;day = d.getDate();s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);return s; } //-----[獲取前n天的日期END]轉載于:https://www.cnblogs.com/userzf/p/11124853.html
總結
以上是生活随笔為你收集整理的获取某个时间开始 之后的 N次[周几,周几]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事件循环机制(even loop)
- 下一篇: 怎么查看etc绑定的银行卡