Sekunden in Stunden umwandeln

Kerwin

Erfahrenes Mitglied
Hallo,

ich habe da ein kleines Problem mit der korrekten Umrechnung von Sekunden zu Minuten/Stunden.

Als fiktives Beispiel wäre da zum Beispiel ein Browser OG mit den Bauzeiten von Gebäuden. Ich will in einer Spalte angeben, wie lange as Gebäude nun dauern soll bis es fertig ist, beispielsweise 13200 Sekunden. Nun will ich dem User aber noch sagen wie lange das in Stunden ist was in diesem falle 3,66666...7 wäre. Nun will ich aber das da nicht 666..7 steht, sondern dafür die genauen Minuten, sprich 3:40 h. Mit dem Dreisatz komme ich zwar annährend hin, aber ich bekomme da nicht so das genaue Ergebnis heraus. Nun habe ich mir mal mktime() geschnappt und die Sekunden da eingetragen wie >> date('i:s',mktime(0,0,13200,0,0,2001)) << . Funktioniert ja soweit ganz gut, was ist aber dann wenn ich 36 Stunden habe? Dann bekomme ich ja wieder nur 1 Tag und 12h raus.
Irgendwie sitze ich da in einer kleinen Zwickmühle und habe eine kleine Blockade im Kopf.

Kann mir da wer auf die Sprünge helfen?

Thx im vorraus
 
$minuten = floor($sekunden/60);
$stunden = floor($minuten/60);
$tage = floor($stunden/24);

etc...
 
Zuletzt bearbeitet:
PHP:
<? $sekunden = 457811;

   // Tage
   echo bcdiv($sekunden,86400,0)."T: ";
   $rest_tage = bcmod($sekunden, 86400);

   // Stunden
   echo bcdiv($rest_tage,3600,0)."h: ";
   $rest_stunden = bcmod($rest_tage, 3600);

   // Minuten
   echo bcdiv($rest_stunden,60,0)."m: ";
   $rest_minuten = bcmod($rest_stunden, 60);

   // Sekunden
   echo bcdiv($rest_minuten,1,0)."s";
?>

Und wenn du die Anzahl der Tage nicht haben möchtest lässt du einfach Zeilen //Tage weg und schon werden dir nur die Stunden, Minuten und Sekunden ausgepsuckt. Schau dir die Funktionen bcdiv() und bcmod() mal an!
 
so banal kann das aber net hinhauen.

3,66

Dreisatz:
60/100 = x/66 ergibt 39,6 und abgerundet 39 statt 40 Minuten

ceil geht auch net wirklich weil auch 40,02 rauskommen kann und dann 41 das Ergebnis ist
 
Zurück