de.comp.lang.php.* FAQ

25.16. Wie wandle ich Sekunden in Tage/Stunden/Minuten/Sekunden um?

Keywords: Stunde | Minute | Sekunde | Zeit | Intervall

Antwort von Johannes Frömter

Normalerweise ist für die Umsetzung von Sekunden in ein "lesbares Format" der Befehl date() zuständig, der einen Unix-Timestamp (vergangene Sekunden seit dem 1.1.1970) verarbeitet. Möchte man jedoch eine Anzahl Sekunden nicht als absolutes Datum, sondern als Intervall in Tagen, Stunden, Minuten und Sekunden darstellen, hilft folgende Funktion:

function intervall($sek) {
    $i = sprintf('%d Tag%s, %d Stunde%s,'.
            ' %d Minute%s und %d Sekunde%s',
            $sek / 86400,
            floor($sek / 86400) != 1 ? 'e':'',
            $sek / 3600 % 24,
            floor($sek / 3600 % 24) != 1 ? 'n':'',
            $sek / 60 % 60,
            floor($sek / 60 % 60) != 1 ? 'n':'',
            $sek % 60,
            floor($sek % 60) != 1 ? 'n':''
         );
    return $i;
}

echo intervall(99114);

Valid HTML 4.01! Valid CSS!

25.16. Wie wandle ich Sekunden in Tage/Stunden/Minuten/Sekunden um?
http://www.php-faq.de/q/q-code-intervall.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team