Generate array of times (as strings) for every X minutes in JavaScript

后端 未结 15 1749
耶瑟儿~
耶瑟儿~ 2020-12-24 01:46

I\'m trying to create an array of times (strings, not Date objects) for every X minutes throughout a full 24 hours. For example, for a 5 minute interval the arr

15条回答
  •  庸人自扰
    2020-12-24 02:02

    Manipulating with a date as with integer and using single loop:

    var interval = 5 * 60 * 1000; //5 minutes 
    var period = 24 * 60 * 60 * 1000; //dat period
    
    //just converts any time to desired string
    var toString = function toString(time){  
      var h = time.getHours();
      var m = time.getMinutes();
      var p = h >= 12 ? "PM" : "AM";
      h = h || 12;
      h = h > 12 ? h - 12 : h;  
      return ("0" + h).slice(-2) + ":" + ("0" + m).slice(-2) + " " + p;
    }
    
    //start time
    var time = new Date(2010, 0, 1);
    
    //resulting array
    var times = [];
    
    for ( var t = +time; t < +time + period; t += interval){  
      var d = toString(new Date(t));  
      times.push(d);
    }
    

提交回复
热议问题