Sekunden in Stunde:Minute:Sekunde

Transporter

Mitglied
Hallo,

in meiner DB habe ich den beispielweise den Wert 900.
Diesen Wert will ich aber als Minuten und am besten auch noch
als Stunden und Sekunden anzeigen lassen.

Beispiel:
900 = 00:15:00 oder
1395 = 00:23:15.

Vielen Dank im Vorraus
 
Wie wärs damit ?

PHP:
       $stundenende = substr($uhrzeit,0,2);
	$minutenende = substr($uhrzeit,3,2)+$dauer;
	$minutenende2 = $dauer;
	$minuten = substr($uhrzeit,3,2);
	$stunden = substr($uhrzeit,0,2);

if ($minutenende2 < 60 AND $minutenende > 59) {		
		$minuteninstunden = $minutenende/60;
		$stundenberechnung = substr($minuteninstunden,0,1);
		
		$stundenende = $stunden+$stundenberechnung;
		
		$minutenberechnung = $minuten-$dauer;
		$minutenberechnung2 = 60-$minuten;
		$minutenberechnung3 = $dauer-$minutenberechnung2;
		
		$minutenende = $minutenberechnung3;
	}
	
	if ($stundenende > 23) {
		$dauerinstunden = $dauer/60;
		$stundenende = substr($dauerinstunden,0,1);
	}
	
	if ($minutenende > 59) {	
		$minuteninstunden = $minutenende/60;
		$stundenberechnung = substr($minuteninstunden,0,1);
		
		$stundenende = $stunden+$stundenberechnung;
		
		$minutenrest = $stundenberechnung*60;
		$test = $dauer-$minutenrest;
		
		$minutenende = $test+$minuten;
	}
	
	if ($stundenende > 23) {
		$dauerinstunden = $dauer/60;
		$stundenende = substr($dauerinstunden,0,1)-1;
	}
		
	if (strlen($stundenende) == 1) {
		$stundenende = '0'.$stundenende;
	}	
	
	if (strlen($minutenende) == 1) {
		$minutenende = '0'.$minutenende;
	}

edit:
Hab grad bemerkt, dass dieses Skript ohne Sekundenanzeige ist und eigentlich dazu da ist um auf eine Uhrzeit, eine Dauer in Minuten als Uhrzeit zu formatieren und die Dauer dann auf die Uhrzeit dazuzurechnen. Deswegen auch $minutenende und $stundenende. Sorry ich hab die Fragestellung falsch verstanden...
 
Zuletzt bearbeitet:
@Sven
Also zumindest bei mir funktioniert dein Schnippsel nicht ;)
Bzw. funktioniert schon, ist aber falsch. Kann auch absolut nicht nachvollziehen was die "21600" da zu suchen haben. ;)

Sofern es nicht erforderlich ist, dass z.B. fehlende Stunden nicht angezeigt werden, würde ich es so lösen:

PHP:
<?PHP 
$sec = 7452;
$h = $sec/3600;
$sec %= 3600;
$m = $sec/60;
$sec %= 60;
$s = $sec % 60;
printf("%02d:%02d:%02d", $h, $m, $s);
?>

Adaptiert von Perl und umgeschrieben in PHP ;)
 
Was bitte war das für ein faslcher Beitrag @aKraus?

Es geht nich tum die Umwandlung eines Timestamps!
 
Transporter hat gesagt.:
Hallo,

in meiner DB habe ich den beispielweise den Wert 900.
Diesen Wert will ich aber als Minuten und am besten auch noch
als Stunden und Sekunden anzeigen lassen.

Beispiel:
900 = 00:15:00 oder
1395 = 00:23:15.

er schreibt, dass er es anzeigen lassen will und NICHT, dass er mit Sekunden, Minuten & Stunden in Variablen arbeiten will! Erst lesen :)
 
aber um die Funktion date(); anwenden zu können braucht man auch einen gültigen TIMESTAMP. Und da bringt einem 900 gar nichts
 
Das ist ein gültiger Timestamp.
Ein Unixtimestamp ist nichts anderes als die Sekunden seit dem 1.1.1970. (Bitte korrigiert mich).
900 wäre dementsprechend der 1.1.1970 00:15:00. Da er nur die Uhrzeit angezeigt haben will, würde die date() Funktion seinen Zweck voll und ganz verfüllen.
 
Zurück