Php while循环使用date和mktime从01:00:00到23:00:00回放24小时

时间:2011-07-19 08:24:59

标签: php time mktime

我需要一个PHP脚本,显示从01:00:00到24:00:00的所有小时 到目前为止,我已经这样做了:(这段代码在while循环中)

  $hour++;
  $hour_after_midnight = date('G:i:s',mktime(1,0,0,1,1,2011));
  $next_hour = date($this_hour,strtotime('+1 hour'));
  echo $next_hour;

但上面的代码返回:

  

1:00:00 x24times

我认为我使用的日期功能是错误的 任何帮助将不胜感激

3 个答案:

答案 0 :(得分:4)

<?php
$hour = 0;
while($hour++ < 24)
{
    $timetoprint = date('G:i:s',mktime($hour,0,0,1,1,2011));
    echo $timetoprint;
}
?>

那会像你想要的那样去做吗?我假设您需要将日期变量放在该表单中。否则,评论是要走的路。

答案 1 :(得分:1)

尝试

$this_hour = $next_hour; 

(在echo之后),看起来您忘记更新循环中下一个时间偏移的时间偏移。

您可能希望使用$hour++执行此操作,但该变量未在此单个语句旁边的代码中使用。

但是这个答案可能是错误的,因为大多数代码看起来错误(充分尊重),如果您更好地描述编码时遇到的实际问题,那么SO上的用户可以做得更好答案,请参阅 Edgar Velasquez Lim 的答案,其中还有其他一些代码示例。

例如,您是否有必要了解具体问题的datemktimestrtotime函数?

当您在循环中操作变量时,是否有问题需要了解变量会发生什么?

答案 2 :(得分:0)

试试这个:

$iTimestamp = mktime(1,0,0,1,1,2011);
for ($i = 1; $i < 24; $i++) {
    echo date('H:i:s', $iTimestamp) . "\n<br />";
    $iTimestamp += 3600;
}