Wie man die Differenz zwischen zwei Daten mit PHP berechnet
-
Die Verwendung von
strtotime()
zur Berechnung der Differenz zwischen zwei Daten für PHP-Versionen unter 5.3 -
Verwendung der Objekte
DateTime()
undDateInterval()
für PHP 5.3 und höher
Es gibt mehrere Möglichkeiten, die Differenz zwischen zwei Daten mit PHP zu berechnen. Dieser Artikel zeigt Ihnen, wie Sie die PHP-Version < 5.3 und die neueste und zuverlässigere Methode für die neuere Version (>5.3) verwenden können, um die Datumsdifferenz zu berechnen.
Die Verwendung von strtotime()
zur Berechnung der Differenz zwischen zwei Daten für PHP-Versionen unter 5.3
Die strtotime()
konvertiert zwei Datumsangaben in UNIX-Zeit und berechnet daraus die Anzahl der Sekunden. Daraus ist es einfacher, verschiedene Methoden mit Sekunden zu berechnen. Die Funktion akzeptiert einen String-Parameter in englischer Sprache, der die Beschreibung von Datum und Zeit anzeigt.
Beispiel:
$firstDate = "2019-01-01";
$secondDate = "2020-03-04";
$dateDifference = abs(strtotime($secondDate) - strtotime($firstDate));
$years = floor($dateDifference / (365 * 60 * 60 * 24));
$months = floor(($dateDifference - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
$days = floor(($dateDifference - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 *24) / (60 * 60 * 24));
echo $years." year, ".$months." months and ".$days." days";
//output: 1 year, 2 months and 3 days
Das obige Beispiel ermittelt die Differenz zweier Datumsangaben unter Verwendung mehrerer Funktionen wie abs()
, floor()
und hauptsächlich der strtotime()
.
Die strtotime()
erhält den UNIX-Sekundenwert des Datums und mit abs()
den absoluten Wert des ersten Datums.
Die Funktion floor()
wird verwendet, um die Sekunden auf die nächste ganze Zahl abzurunden.
Um das Jahr zu erhalten, multiplizieren Sie 365 Tage mit 60 Minuten, 60 Sekunden und 24 Stunden und dividieren sie dann durch die Differenz.
Um die Monate zu erhalten, multiplizieren Sie 30 Tage mit 60 Minuten, 60 Sekunden und 24 Stunden und dividieren Sie sie durch die Differenz der Datumsdifferenz multipliziert mit dem Jahr und 365 Tagen, 60 Minuten, 60 Sekunden und 24 Stunden.
Um dann die Tagesdifferenz zu erhalten, multiplizieren Sie 60 Minuten, 60 Sekunden und 24 Stunden und dividieren Sie sie durch die Differenz der Datumsdifferenz, dem Produkt aus Jahren, 365 Tagen, 60 Minuten, 60 Sekunden und 24 Stunden und den Produkten aus Monaten, 30 Tagen, 60 Minuten und 60 Sekunden und 24 Stunden.
Schließlich fügen Sie alles zusammen in eine Variable ein, um die endgültige Differenz auszudrucken.
Verwendung der Objekte DateTime()
und DateInterval()
für PHP 5.3 und höher
Diese Methode ist ein objektorientierter Stil, um den Unterschied zwischen zwei Daten zu ermitteln. Dies ist auch die einfachste Methode, da sie keine manuelle Berechnung der Daten erfordert und empfohlen wird, da sie aus der neuesten Version von PHP stammt.
Beispiel:
$firstDate = new DateTime("2019-01-01");
$secondDate = new DateTime("2020-03-04");
$intvl = $firstDate->diff($secondDate);
echo $intvl->y . " year, " . $intvl->m." months and ".$intvl->d." day";
echo "\n";
// Total amount of days
echo $intvl->days . " days ";
//output: 1 year, 2 months and 1 day
// 428 days
Im obigen Beispiel wurde es im Gegensatz zur Verwendung von strtotime()
und anderen Funktionen und Berechnungen durch DateTime()
und DateInterval()
Objekte einfacher.
Zuerst deklarieren Sie die Daten mit new DateTime()
. Dann holen Sie den ganzzahligen Wert der Differenz mit dem DateInterval()
Objekt diff()
am ersten Datum und übergeben das zweite Datum als Parameter.
Um schließlich das Jahr
zu erhalten, benutzen Sie einfach das Objekt y
. Benutzen Sie m
, um die Monate zu erhalten und d
für den Tag.
Verwandter Artikel - PHP Date
- Wie man Tage zum Datum in PHP hinzufügt
- Wie man DateTime in PHP in Strings konvertiert
- Wie konvertiert man Strings in PHP in Datum und Uhrzeit
- Wie man in PHP ein Datumsformat in ein anderes konvertiert
- Wie Sie das aktuelle Datum und die Uhrzeit in PHP erhalten
Verwandter Artikel - PHP DateTime
- Wie Sie den letzten Tag des Monats mit PHP-Funktionen erhalten
- Wie man DateTime in PHP in Strings konvertiert
- Wie Sie das laufende Jahr in PHP bekommen
- Wie konvertiert man ein Datum in einen Zeitstempel in PHP
- Wie man in PHP einen Zeitstempel in ein lesbares Datum oder eine lesbare Uhrzeit konvertiert