Ich stand kürzlich vor dem Problem, dass ich in einer Datenbank Cds mit allen Titeln plus die Spielzeit pro Titel (im SQLDB Format „time“, also 00:00:00) abgespeichert habe. Wie kann ich solche Zeiten einer CD aufaddieren um die Gesamtspielzeit zu ermitteln?
Der Grundgedanke ist, alle Spielzeiten in Sekunden umzurechnen, da man Minuten und Sekunden nicht einfach so addieren kann! Nachdem man die Gesamtsekunden als Ergebnis hat, rechnet man wieder in Stunden, Minuten und Sekunden um, fertig! War etwas Knobelarbeit als PHP Anfänger – sollte jemand sowas benötigen, ich habe es in eine Funktion gepackt, der ganz Code sieht so aus:
//Gesamtspielzeit errechnen ----------------- $gesamtspielzeit = mysql_query("SELECT time FROM xxx WHERE xxx = $request"); $gsecs = 0; // Startwert Sekunden auf 0 //Funktion Umrechnung Sekunden in Zeitformat function zeitformat($sec) { $sec = abs($sec); // Ganzzahlwert bilden return sprintf("%02d:%02d:%02d", ($sec/60/60)%24,($sec/60)%60,$sec%60); } while($t = mysql_fetch_object($gesamtspielzeit)) { $result = explode (":", $t->time); // Time Format exploden $secs = 3600 * $result[0] + 60 * $result[1] + $result[2]; // Sekunden errechnen $gsecs = $gsecs + $secs; // aufaddieren } $gesamtzeit = zeitformat($gsecs); // Sekunden in Zeitformat umwandeln // trimmen, führende Nullen raus, Ergebnis totaltime! $totaltime = ltrim("$gesamtzeit", ":0"); //Gesamtspielzeit Ende ------------------------------------
Sowas ist von Nutzen, wenn man beispielsweise in einer Webseite Cds darstellen möchte. Einmal entwickelt lassen sich somit alle Gesamtspielzeiten darstellen.