PHP日期每隔x分钟递增一次并循环直到x次

时间:2016-03-17 00:12:19

标签: php date

我是php的新手。

我想询问如何每x减去或x小时制作增量循环日期,并重复直到x次。

示例:

  1. 我有时间:2016-03-22T23:00:00
  2. 我想每30分钟增加一次
  3. 重复6次。
  4. 并输出:

    1. 2016-03-22T23:00:00
    2. 2016-03-22T23:30:00
    3. 2016-03-23T00:00:00
    4. 2016-03-23T00:30:00
    5. 2016-03-23T01:00:00
    6. 2016-03-23T01:30:00
    7. 我以前的代码在stackoverflow中形成了其他问题:

      <?php
      $startdate=strtotime("next Tuesday");
      $enddate=strtotime("+1 weeks",$startdate); //16 weeks from the starting date
      $currentdate=$startdate;
      
      echo "<ol>";
      while ($currentdate < $enddate): //loop through the dates
          echo "<li>",date('Y-m-d', $currentdate),"T";
          echo date('H:i:s', $currentdate);
          echo "</li>";
      
          $currentdate = strtotime("+30 minutes", $currentdate); //increment the current date
      endwhile; // calculate date range
      echo "<ol>";?>
      

      在该代码上循环停止直到所需日期。 我的问题是如何在需要时间之前及时增加...,例如5,10,10,500次循环? 如何编码?

2 个答案:

答案 0 :(得分:3)

PHP的DateTime功能可以完美地满足您的需求:

// Set begin date
$begin = new DateTime('2016-03-17 23:00:00');

// Set end date
$end = new DateTime('2016-03-18 23:00:00');

// Set interval
$interval = new DateInterval('P30M');

// Create daterange
$daterange = new DatePeriod($begin, $interval ,$end);

// Loop through range
foreach($daterange as $date){
    // Output date and time
    echo $date->format("Y-m-dTH:i:s") . "<br>";
}

答案 1 :(得分:0)

只需使用for循环执行此任务:

UserHeader