33 Stimmen

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

Frage von Gast | Letztes Update am 14.01.2024 | Erstellt am 01.10.2014

Ich habe in einem meiner PHP-Skripts einen Zeit-Wert, der in Minuten angegeben ist. Diesen würde ich gerne auf meiner Webseite in der Form Stunden:Minuten ausgeben. Also zum Beispiel "1:37 Stunden" statt "97 Minuten".

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

AntwortenPositivNegativDatumStimmen
11Beste Antwort13 Stimmen

Du könntest dafür eine Kombination der 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 zum Beispiel "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).
Letztes Update am 14.01.2024 | Erstellt am 01.10.2014

AntwortenPositiv Negativ
44 Stimmen

Alternativ kann man auch die Funktion sprintf() benutzen, um das selbe Resultat zu erhalten.

Hier ist ein Beispiel:

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

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

In den Format-Strings 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.
Letztes Update am 14.01.2024 | Erstellt am 01.10.2014

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Upload großer Dateien

Tutorial | 0 Kommentare

PHP: Datei Download Skript

Tutorial | 0 Kommentare

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.