Zahl in Zeit umwandeln

SantaCruze

Erfahrenes Mitglied
Hallo Zusammen :) Und zwar suche ich eine Funktion, die eine beliebige Zahl in eine Zeitangabe ala Stunden / Minuten / Sekunden umwandeln kann. Hat da jmd zufällig gerade sowas zur Hand ?
 
Du meinst wahrscheinlich eine Sekundenanzahl in eine Stunden-Minuten-Sekunden-Anzeige zu formatieren.
Bis zu einem Wert von 86400 Sekunden, was einem Tag entspricht, geht das mit der date()-Funktion (Zeitzoneneinstellung berücksichtigen). Sonst muss du einfach die Sekundenanzahl durch 3600 teilen, was abgerundet der Anzahl der Stunden entspricht, diesen Wert mit 3600 multiplizieren und von der Anzahl der Sekunden subtrahieren, den Rest wiederum durch 60 teilen, was abgerundet der Anzahl der Minuten entspricht, diesen Wert mit 60 multiplizieren und wieder von der Restanzahl der Sekunden subtrahieren. Der Rest davon entspricht den übrig gebliebenen Sekunden.
PHP:
$sekunden = 12345;
$sekunden -= ($stunden=floor($sekunden/3600)) * 3600;
$sekunden -= ($minuten=floor($sekunden/60)) * 60;
Sehr kompakte Schreibweise, ich weiß. Es geht auch verständlicher.
 
Beispiel wäre halt
$zeit1 = 500
$zeit2 = 1000
$zeit3 = 3

$endtime = $zeit1+$zeit2*$zeit3

und aus der Endtime wo dann ja 4500 rauskommt will ich das Formatiert ausgeben. Daher X Stunden X Minuten X Sekunden.
 
Ja die Zeit die in der DB eingetragen wird, ist Sekunden. Nun halt die Frage, hat jmd eine Funktion die sowas ausrechnen kann zur Hand ?
 
Sowas ?

PHP:
function AnzSek ( $sek ) {
    $i = sprintf('%d : %02d : %02d : %02d ',
    floor($sek / 86400),
    floor($sek / 3600 % 24),
    floor($sek / 60 % 60),
    floor($sek % 60));
    return $i;
    }
 
CIX war schneller hier meine Funktion welche ich gerade geschrieben habe (mit dem Codeschnippsel von Gumbo:
PHP:
function sekinzeit($sekunden) {

	$sekunden = (int)$sekunden;

    $sekunden -= ($stunden=floor($sekunden/3600)) * 3600;
    $sekunden -= ($minuten=floor($sekunden/60)) * 60;  

    $stunden = sprintf("%02d", $stunden);
    $minuten = sprintf("%02d", $minuten);
    $sekunden = sprintf("%02d", $sekunden);

    $zeit = $stunden.":".$minuten.":".$sekunden;

    return $zeit;

}
So wenn man jetzt z.B. folgendes mit der Funktion ausgibt (also 65 Sekunden):
PHP:
echo sekinzeit(65);
Dann wird 00:01:05 für 0 Stunden, 1 Minute und 5 Sekunden ausgegeben.
 
Zuletzt bearbeitet:
Zurück