00 Stimmen

PHP: Minuten in Stunden und Minuten umwandeln (0:00)

Frage von Gast | 01.10.2014 um 16:01

Ich habe in einem meiner PHP-Skripts einen Zeit-Wert in Minuten vorliegen. Nun würde ich aber gerne auf meiner Website nicht zum Beispiel 97 Minuten ausgeben sondern 1:37 Stunden.

Das heißt, ich brauche irgendeine Funktion, die mir die Minuten in das Format h:min umwandelt. Gibt es eine solche Funktion in PHP? Möglichst einfach, wenn es geht.

AntwortenPositivNegativDatumStimmen
Avatar
1Beste Antwort3 Stimmen

Du könntest die PHP-Funktionen date() und mktime() verwenden.

Zum Beispiel so:

echo date('G:i', mktime(0, 97)); // 1:37
echo date('H:i', mktime(0, 97)); // 01:37

Als ersten Parameter nimmt mktime() die Anzahl der Stunden entgegen, als zweiten (optionalen) Parameter die Minuten, danach Sekunden, Monate, Tage und Jahre.

Rufst du mktime() mit mktime(0, 97) auf wären das entsprechend 0 Stunden und 97 Minuten, die du mit date() formatiert ausgeben kann. Mit dem Format-String "G:i" erhältst du 1:37, mit "H:i" 01:37.

Du kannst aber natürlich auch die Anzahl der Sekunden übergeben [mktime(0, 0, 120) = 120 Sekunden] oder die Argumente mischen [mktime(1, 2, 3) = 1 Stunde, 2 Minunten und 3 Sekunden]. Ebenso kannst du als Format-String auch all die anderen Zeichen verwenden (s für Sekunden mit führenden Nullen etc).
01.10.2014 um 17:05

AntwortenPositiv Negativ
Avatar
11 Stimme

Alternativ kann man natürlich auch die Funktion sprintf benutzen:

$t = 97;
sprintf("%d:%02d",   floor($t/60), $t%60);  // 1:37
sprintf("%02d:%02d", floor($t/60), $t%60);  // 01:37

Dieser Funktion übergeben wir den Format-String und die Werte, die in dem String ersetzt werden sollen.

Im Format-String verwenden wir hier %d für einfache Integer-Werte und %02d für Integer-Werte, die auf zwei Stellen mit führenden Nullen ausgegeben werden sollen.

Als Werte übergeben wir floor($t/60) und $t%60. Indem wir durch 60 teilen und die Nachkommastellen abschneiden, erhalten wir die Anzahl der Stunden. Entsprechend holen wir uns mit $t%60 den Divisionsrest und damit die Anzahl der Minuten.
01.10.2014 um 17:13

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.