de.comp.lang.php.* FAQ

14.3. Wie kann ich die Anzahl der Tage zwischen zwei Daten bestimmen?

Antwort von Kristian Köhntopp

Dazu gibt es verschiedene Lösungsansätze. Beispielsweise kann man beide Daten in Julianische Tage verwandeln und sie dann voneinander subtrahieren. Das geschieht mit der Funktion GregorianToJD() aus der optionalen Kalenderbibliothek von PHP (muss erst kompiliert werden).

Antwort von Alex Kiesel

Eine zweite Möglichkeit ist, die Datumsangaben in Unix-Timestamps umzuwandeln, mit denen die Differenz durch einfache Substraktion ermittelt werden kann. Unix Timestamps geben eine Zeit als die Anzahl der vergangenen Sekunden seit dem Beginn der Unix Epoche an. Folgender Code demonstriert das:

$utimeDatum1= mktime(0, 0, 0, 1, 1, 2000);  // 1. Januar 2000
$utimeDatum2= time ();                      // Jetzt

$diff= $utimeDatum2 - $utimeDatum1;
printf ("Seit dem %s sind %d Tage bis heute vergangen\n",
  date ('d.m.Y', $utimeDatum1),
  ($diff / 86400)
);
  

Der Nachteil am Rechnen mit Unix-Timestamps besteht darin, dass man nicht mit Daten vor dem 13.12.1901, 20:45:54 GMT und Daten nach dem 19.01.2038 03:14:07 GMT rechnen kann; zudem unterstützen manche verschiedenen Linux- und Windowssystemen Probleme keine Daten im negativen (Integer-)Bereich, also vor dem 1.1.1970.

Valid HTML 4.01! Valid CSS!

14.3. Wie kann ich die Anzahl der Tage zwischen zwei Daten bestimmen?
http://www.php-faq.de/q/q-datum-intervall.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team