Na gut - im Prinzip könnte man es bei einem RTFM belassen, aber das ist weder höflich, noch hilfreich.
Auf alle Fälle ist es so, dass TIME unter MySQL nur einen Bereich zwischen '-838:59:59' und '838:59:59' darstellen kann. Alles, was größer ist, wird unter Umständen einfach nicht angezeigt. So hatte ich kürzlich einen Fall, wo statt 1.100 Stunden, einfach 838 Stunden angezeigt wurden. Es wurde nämlich SEC_TO_TIME verwendet, was sich auf TIME stützt.
Die Lösung ist hier folglich, dass man sich die Summe der Sekunden ausgeben lässt, und die Stunden und Minuten dann selbst berechnet und formatiert. In PHP könnte das z.B. folgendermaßen geschehen:
function get_zeit($zeit) {
$sec_in_h=3600;
$sec_in_m=60;
$sec = $zeit;
// stunden
if ($sec >= $sec_in_h) {
$zeit = floor($sec / $sec_in_h);
$sec = $sec % $sec_in_h;
}
else {
$zeit="0";
}
// minuten
if ($sec >= $sec_in_m) {
$zeit .= ":" . floor($sec / $sec_in_m);
} elseif($zeit) {
$zeit .= ":00";
}
return $zeit;
}
Zurückgegeben wird dann ein String mit Doppelpunkten an den nötigen Stellen, also sowas wie 900:25 für 900 Stunden und 25 Minuten
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.