Mit PHP die Zeitdifferenz berechnen (Stunden / Minuten)

Mit PHP die Zeitdifferenz berechnen

Wie kann mit PHP die Zeitdifferenz berechnet werden? Folgend wird zunächst die Berechnung der Zeitdifferenz an sich veranschaulicht und zudem das Szenario der Datum übergreifenden Zeitberechnung behandelt. Viel Spaß beim nachmachen!

PHP Zeitdifferenz berechnen

Angenommen, es soll die Zeitdifferenz zwischen 13:00 Uhr und 14:30 Uhr berechnet werden. Als Ergebnis wird hier 1,5 Std bzw. 90 Minuten erwartet. In diesem Beispiel wird die PHP Methode strtotime(). verwendet

<pre class="brush:php">
//Belege Variablen mit den entsprechenden Zeiten
$startzeit = strtotime("13:00");
$endzeit = strtotime("14:30");
 
//Subtrahiere die Endzeit von der Startzeit und Teile durch 60 um den Wert in Minuten zu bekommen
$dauerInMinuten = ($endzeit - $startzeit)/60;
 
echo $dauerInMinuten;
</pre>

Zeit über die Datumsgrenze berechnen

Falls die Zeit über die Datumsgrenze hinweg berechnen werden soll, muss noch etwas Code hinzugefügt werden. Angenommen sei folgendes Szenario: Berechnung der Zeit zwischen 23:00 Uhr und 01:00 Uhr - das Ergebnis sollte hier selbstverständlich 120 Minuten sein.

Es kann generell der gleiche Code wie oben vorgestellt verwendet werden, jedoch bekommt man hier ein negatives Ergebnis. Der Trick: Dieses negative Ergebnis wird nun zur Gesamt-Minuten-Anzahl eines Tages addiert. 24 Stunden sind 1440 Minuten.

Der oben genannten Code wird also um folgende Zeilen erweitert:

 //Wenn negatives Ergebnis geht es über die Datumsgrenze. Dann addiere 1440 Minuten für das richtige Ergebnis            
if($dauerInMinuten < 0){            
        $dauerInMinuten = 1440 + $dauerInMinuten;
}

Viel Spaß beim Programmieren :)

Phillip Groschup
Phillip Groschup
Phillip Groschup ist Geschäftsführer der UserMind GmbH und insbesondere für alle Webentwicklungen zuständig. Darunter fallen alle Entwicklungen von Performance-orientierten Websites - sowohl in der Frontend, als auch in der Backendprogrammierung mit Wordpress. Seit 2009 beschäftigt er sich außerdem mit den Themen Suchmaschininoptimierung (SEO) und Suchmaschinenwerbung (Google AdWords). Die Auswertung komplexer Daten zählt dabei zu seiner Leidenschaft.

2 Kommentare

  1. Vorsicht Sommerzeit! Ein Beispiel:

    Das berechnet, wie viel Stunden zwischen dem 25.03.2018 um 0 Uhr und 12 Uhr liegen. Und die Antwort ist: 11
    Das ist natürlich korrekt, denn die Uhr wird ja auf Grund der Sommerzeit zwischenzeitlich um eine Stunde vorgestellt.

    Aber wenn Sie jetzt die im Artikel angegebene Herangehensweise nutzen, um zu berechnen, wie viele Stunden es von 00:00 bis 12:00 sind, ohne dass Sie bei strtotime() ein Datum angeben, so wird diese Berechnung an Tagen der Umstellung auf Sommerzeit als Ergebnis 11 oder 13 ergeben, an allen anderen Tagen 12.
    Das liegt daran, dass strtotime() immer vom aktuellen Tag ausgeht, wenn Sie nur eine Uhrzeit und keinen Tag angeben.

    Die oben angegebene Herangehensweise berechnet also, wie viele Stunden/Minuten es *heute* von der Start- bis zur Endzeit sind. Möchten Sie dies aber generell, also an „normalen“ Tagen ohne Zeitumstellung berechnen, geben Sie besser explizit einen Tag mit an, an dem keine Zeitumstellung erfolgt ist, wie den 01.01.2000:

    Dies wird immer 12 ergeben, egal an welchem Tag Sie es ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.