Вывести всё время в сутках

307
03 ноября 2017, 11:52

Надо вывести время в формате 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>';
    }
Answer 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'), например, и т.п.

Answer 2
for($h = 0; $h < 24; $h++){ // 24 часа
    for($m = 0; $m < 60; $m++){ // по 60 минут
        echo sprintf('%02d:%02d', $h, $m);
    }
}
Answer 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
Answer 4

тут же речь говорится о выводе информации

<?for( $h=0; $h <= 23; $h++ ):?>
    <?for( $m=0; $m <= 59; $m++ ):?>
        <?=( ( $h<10 )?'0'.$h : $h )?>:<?=( ( $m<10 )?'0'.$m : $m )?></br>
    <?endfor;?>
<?endfor;?>
READ ALSO
Как правильно создавать ЧПУ для товаров?

Как правильно создавать ЧПУ для товаров?

Всем приветСкажите, пожалуйста, как правильно создавать похожие ЧПУ: site

328
API расписания на PHP

API расписания на PHP

Нужен совет по разработке типа API для сайта квестов

357
Замена символов по краям каждого слова

Замена символов по краям каждого слова

Новое Я не понимаю, почему звёздочки не меняются на em? Я же сказал найти слово, если оно начинается на * и заканчивается на *

363
JS получить прогресс загрузки файла из PHP

JS получить прогресс загрузки файла из PHP

Пытаюсь отобразить процент загрузки файлов, которые загружаю через GET методПри переходе по ссылке http://site/updates/ загружаются файлы из массива,...

281