#php
Надо вывести время в формате 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 '
'; if($i == 59) { $hour++; } } $m = 0; $m2 = 0; } for($k = 0; $k < 24; $k++) { echo foo(); echo '
'; }
Ответы
Ответ 1
если хочется вручную сделать то может как то так попроще? for($i=0; $i< 24*60; $i++){ $h = $i / 60; $m = $i % 60; printf("%02d:%02d\n", $h, $m); } зы: если надо в переменную сохранить, то есть sprintf. Если не нравятся эти функции, то можно строку дополнить до нужной длины с помощью str_pad($h, 2, '0'), например, и т.п.Ответ 2
for($h = 0; $h < 24; $h++){ // 24 часа for($m = 0; $m < 60; $m++){ // по 60 минут echo sprintf('%02d:%02d', $h, $m); } }Ответ 3
Предложу другой вариант - воспользоваться классом DateTime: function getTime($hour, $min, $fmt = "H:i") { $time = new DateTime("$hour:$min"); return $time->format($fmt); } echo getTime(3, 9)."\n"; // 03:09 Плюс в том, что при желании можно сменить формат, например, на 12ч с am/pm echo getTime(13, 58, "h:i a")."\n"; // 01:58 pm
Комментариев нет:
Отправить комментарий