创建一个循环,将时间增加一个小时

时间:2013-10-21 10:54:45

标签: php time strtotime

我花了很多时间试图弄清楚如何创建一个循环,它将在给定的$ start_time和$ end_time之间回显时间,以HH:MM的格式将其递增1小时。     例如,如果我有$ start_time =“09:00”和$ end_time =“15:00”,则输出应该如下:

  

09:00

     

10:00

     

11:00

     

12:00

     

13:00

     

14:00

     

15:00

知道怎么做吗?我知道我应该使用php时间戳和strtotime等我从来没有使用过它们,所以我什么也做不了,请帮忙...

5 个答案:

答案 0 :(得分:0)

如果您只想echo次,您可以做一些简单的事情:

$start_time = 9;
$end_time = 15;
for ($time = $start_time; $time <= $end_time; $time++) {
  if ($time < 10)
    echo "0";
  echo $time . ":00\n";
}

答案 1 :(得分:0)

$start_time = "15:49";
$hours = 9;

list($h, $m) = explode(':', $start_time);
while ($hours-->0)
{
    echo $h++ . ":" . $m . "\n";
}

答案 2 :(得分:0)

您可以使用mktime()

执行此操作
$start = 7;
$end = 15;
for ($time = $start; $time <= $end; $time++) {
  echo date("H:00", mktime($time+1)).'<br>';
}

编辑:

只是为了好玩,这是另一个例子

foreach(range(intval('07:00:00'),intval('16:00:00')) as $time) {
  echo date("H:00", mktime($time+1)).'<br>';
}

答案 3 :(得分:0)

$interval = date_interval_create_from_date_string('1 hour');
$begin = date_create('09:00');
$end = date_create('15:00')->add($interval);
foreach (new DatePeriod($begin, $interval, $end) as $dt) {
    echo $dt->format('H:i') . "\n";
}

<强>演示:

答案 4 :(得分:-1)

自从我编写PHP以来,我已经有一段时间了但是看看link 注意我在编辑问题之前发布了这个。

while($starttime < $endtime)
{
    echo $starttime;
    $starttime = date_add($starttime, date_interval_create_from_date_string('1 hour'));
}