【问题标题】:Creating a time interval that goes into array创建进入数组的时间间隔
【发布时间】:2015-08-31 02:30:34
【问题描述】:

我试图创造这样的东西

我们的时间从 15 分钟开始,即 15:00,我们的间隔将是 X,这将在一个变量中给出,但现在假设为 0:30 秒,所以我将得到 14:30,14:00...到 0:00。我希望将结果保存在一个数组中,以便以后参考。

我没有想到如何实现这一目标。感谢您的任何提示。

$interval = 30; //seconds

现在我使用这个数组 ( int = 15s ) 但我希望它在我想设置间隔时以某种方式更加动态。

$intervals = array(
    "15:00",
    "14:45",
    "14:30",
    "14:15",
    "14:00",
    "13:45",
    "13:30",
    "13:15",
    "13:00",
    "12:45",
    "12:30",
    "12:15",
    "12:00",
    "11:45",
    "11:30",
    "11:15",
    "11:00",
    "10:45",
    "10:30",
    "10:15",
    "10:00",
    "09:45",
    "09:30",
    "09:15",
    "09:00",
    "08:45",
    "08:30",
    "08:15",
    "08:00",
    "07:45",
    "07:30",
    "07:15",
    "07:00",
    "06:45",
    "06:30",
    "06:15",
    "06:00",
    "05:45",
    "05:30",
    "05:15",
    "05:00",
    "04:45",
    "04:30",
    "04:15",
    "04:00",
    "03:45",
    "03:30",
    "03:15",
    "03:00",
    "02:45",
    "02:30",
    "02:15",
    "02:00",
    "01:45",
    "01:30",
    "01:15",
    "01:00",
    "00:45",
    "00:30",
    "00:15",
    "00:00"
);

【问题讨论】:

标签: php arrays loops time


【解决方案1】:
$start = strtotime('00:15:00');        // start time
$end = strtotime('00:00');             // end time (must be less)
$interval = 30;                        // in seconds
$arr = array();

do {
    $arr[] = $i = date("i:s", $start);
    $start = strtotime("00:" . $i . " -". $interval ." second");
} while($start >= $end);

print_r($arr);

【讨论】:

    【解决方案2】:

    你可以试试,像这样:

    function generateTimeArray($start, $end, $interval) {
        $t = strtotime($end) - $interval;
        $results = array(date("H:i:s", strtotime($end)));
        while ($t >= strtotime($start)) {
            $results[] = date("H:i:s", $t);
            $t -= $interval;
        }
        return $results;
    }
    
    $results = generateTimeArray("00:00:00", "00:15:00", 15);
    print_r($results);
    

    【讨论】:

      【解决方案3】:
      $interval = 15; //seconds
      $time = 15; //minutes
      $sec_time = $time*(60/$interval); //We are converting 15 minutes to seconds. 
      
      $in = array();
      $in[0]=$time.":00";
      $count = 0;
      
      while ($sec_time > 0){
      //This will only work alright if 60 can be divided by $interval, else, you'll get floats
         $in[count]=$sec_time%60.":".$sec_time/60;
         $count++;
         $sec_time = $sec_time-$interval;
      }
      print_r($in);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-07
        • 1970-01-01
        • 1970-01-01
        • 2022-01-08
        相关资源
        最近更新 更多