Вывести всё время в сутках
Надо вывести время в формате 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, время: 14:05. |