2017-08-11 72 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