Вывести всё время в сутках
Надо вывести время в формате 23:41, я это сделал, как можно упростить код?
Из-за того, что PHP 00 превращает в 0, пришлось создавать дополнительные переменные и условия. $h = 0; $h2 = 0; $m = 0; $m2 = 0; $hour = 0; function foo() { global $hour; global $h; global $h2; global $m; global $m2; for($i = 0; $i < 60; $i++) { if($hour < 10) { if($m2 < 10) { echo $h . $hour . ':' . $m . $m2; $m2++; } else { echo $h . $hour . ':' . $m2; $m2++; } } else { if($m2 < 10) { echo $hour . ':' . $m . $m2; $m2++; } else { echo $hour . ':' . $m2; $m2++; } } echo '<br>'; if($i == 59) { $hour++; } } $m = 0; $m2 = 0; } for($k = 0; $k < 24; $k++) { echo foo(); echo '<br>'; } |
Цитата:
Цитата:
PS. strlen, а не str_pad :) |
Вот так сделал
$noon = ''; $h = 0; $m = 0; while($noon != '23:60') { for($i = 0; $i < 60; $i++) { echo str_pad($h, 2, '0', STR_PAD_LEFT) . ':' . str_pad($m, 2, '0', STR_PAD_LEFT); $m++; $noon = str_pad($h, 2, '0', STR_PAD_LEFT) . ':' . str_pad($m, 2, '0', STR_PAD_LEFT); echo '<br>'; } $h++; $i=0; $m=0; } |
Если вам нужен период с указанным интервалом, то так:
$start = new DateTime('2017-11-01 00:00'); $end = new DateTime('2017-11-01 03:00'); $itr = new DateInterval('PT1M'); foreach(new DatePeriod($start, $itr, $end) as $date){ echo $date->format('H:i') . '<br>'; } |
Часовой пояс GMT +3, время: 05:30. |