функция php конвертировать секунды в военное время? - PullRequest
0 голосов
/ 07 марта 2012

Есть ли встроенная функция php, которая конвертирует количество секунд в военное время?

Таким образом, это займет 3600 и выдаст 01: 00: 00.

Ответы [ 4 ]

2 голосов
/ 07 марта 2012

Попробуйте это:

<?php
$seconds = 3600;
echo sprintf("%02d:%02d:%02d",$seconds/3600,($seconds/60)%60,$seconds%60);
?>
1 голос
/ 07 марта 2012
$seconds = 3600;
echo gmdate('H:i:s', $seconds);

Ксато был почти там.

При таком подходе это немного обманывает, но я считаю, что он будет вести себя именно так, как вы хотите, с часами, минутами и секундами.

edit: и поведение будет одинаковым на всех серверах независимо от их настроек TZ

1 голос
/ 07 марта 2012

Вот, пожалуйста. Я мог бы сам когда-нибудь использовать такую ​​функцию, поэтому я написал это для вас.

function time_format($time)  {
    if($time > 86400) {
        return "more than 1 day";
    }

    $display = '';
    if ($time >= 3600) {
        $hours = floor($time/3600);
        $time = $time%3600;
        if($hours <= 9) { $display .= "0"; }
        $display .= $hours;
    } else {
        $display .= "00";
    } 
    $display .= ":";
    if($time >= 60) {
        $minutes = floor($time/60);
        $time = $time%60;
        if($minutes <= 9) { $display .= "0"; }
        $display .= $minutes;
    } else {
        $display .= "00";
    }
    $display .= ":";
    if($time > 0) {
        $seconds = $time;
        if($seconds <= 9) { $display .= "0"; }
        $display .= $seconds;
    } else {
        $display .= "00";
    }
    return $display;
}

РЕДАКТИРОВАТЬ: видя ответ bozdoz заставляет меня чувствовать себя очень стыдно: (

1 голос
/ 07 марта 2012
$seconds = 3600;
echo date('H:i:s', $seconds);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...