2017-08-11 68 views
0

我嘗試谷歌,但我找不到任何解決方案,可以幫助我。在jquery中通過日期和時間循環

我有15分鐘的間隔,我需要整整一週以15分鐘的間隔循環。

日期間隔可以是任何。

我嘗試什麼是

var array = [{x:'Thu Jul 27 2017 01:00:00 GMT+0200 (Central European Daylight Time)',y:1}, 
 
     {x:'Thu Jul 21 2017 01:10:00 GMT+0200 (Central European Daylight Time)',y:5}, 
 
     {x:'Thu Jul 21 2017 01:15:00 GMT+0200 (Central European Daylight Time)',y:3}, 
 
    ... 
 
     {x:'Thu Jul 27 2017 23:55:00 GMT+0200 (Central European Daylight Time)',y:8}, 
 
    ]; 
 
    var interval = 900000; 
 

 
    for(var i = 0; i < maxArray.length; i++) { //loop through the existing date object array 
 
       millisecArray.push(maxArray[i]['x'].getTime()); //and push its millisec value into the new array 
 
      } 
 

 
      var startObj = new Date('2017-07-17 01:00:00'); 
 
      var endObj = new Date('2017-07-27 23:55:00'); 
 

 
      var start = startObj.getTime(); //gets the time in millisecs 
 
      var end = endObj.getTime(); //gets the time in millisecs 
 

 
      var newDateObj = new Date(); 
 
      //keep looping until current is 15 minutes smaller than end 
 
      for(var current = start; current < end; current = current + interval){ 
 
       if(!lookup(current , millisecArray)) { 
 
       console.log(new Date(current));//@TODO will give me only time but not date. 
 
       } 
 
      } 
 

 
      function lookup(name,arr) { 
 
       for(var j = 0; i < arr.length; j++) { 
 
       if(arr[ j ] === name) 
 
        return true; 
 
       } 
 
       return false; 
 
      }

+0

它不清楚你想要什麼,你的代碼是不是工作/完成 –

+0

是的......正如喬納斯所說,目前還不清楚你想要什麼。內部for循環是正確的,並且在15分鐘間隔內在2個日期之間循環,因爲它似乎是你想要的 – Aleeeeee

+0

您可以使用[Moment.js](https://momentjs.com/)來操縱時間。這是一個外部庫(不包括在jQuery中),這就是爲什麼我發佈這個作爲評論而不是答案,但他們將管理夏令時,一週中的某一天,一天中的某一天等。神奇,簡單,充分記錄的圖書館。這裏的文檔'添加'時間(任何你想要的增量)https://momentjs.com/docs/#/manipulating/add/ –

回答

0

在這裏你去使用moment.js庫,這裏是一個例子,如何添加15 minute到的日期。

var startObj = moment('2017-07-17 01:00:00'); 
 
var endObj = moment('2017-07-27 23:55:00'); 
 
    
 
for(var current = startObj; current < endObj;current=startObj.add(15,'minute')) 
 
{ 
 
    console.log(current); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://momentjs.com/downloads/moment.js"></script>

希望這個例子幫助您解決問題。

+0

它的作品對我來說很好。我還有一個問題,我怎樣才能用日期排序這個結果? – Dev