PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datumsdifferenz berechnen


Xyla
12.07.2005, 09:59
Mahlzeit,

ich hab hier mal ein problem, dass für mich (PHP Noob) zur Zeit eine unüberwindliche Blockade darstellt. Ich komm jedenfalls zu keinem Lösungsansatz.

Und zwar:

ich habe in meiner DB 2 Spalten (Beginn und Ende) im Format date (2005-05-27).

Wie pack ich es an, dass ich die Differenz der beiden Datums in Monaten und Resttagen angezeigt bekomme.

Also ich bräuchte ne Ausgabe wie :

2 Monate und 11 Tage.

Dabei müssen die Monate wirkliche Monate sein. Ein runden von tagen (30 Tage = 1 Monat) bringt mir nicht wirklich viel.

Ich hoffe mir kann jemand helfen.

Vielen Dank im Voraus

Xyla

Hoffi
12.07.2005, 16:39
Hier (http://de.php.net/mk_time) findest du ein paar Beispiele dazu. Besser kann ich es auch nicht. ;)

StGaensler
12.07.2005, 16:44
Meinst du ungefähr so etwas?
$date1string = "2005-03-16";
$date2string = "2005-05-27";

$date1 = strtotime($date1string);
$date2 = strtotime($date2string);

$differenz = $date2 - $date1;

echo "Datum 1: ".date("d.m.Y",$date1)."<br />Datum 2: ".date("d.m.Y",$date2)."<br />";
echo "Differenz: ".intval($differenz/(60*60*24))." Tage<br />";
echo "detailiert: ".intval(date("j", $date2) - date("j", $date1))." Tage, ".intval(date("n", $date2) - date("n", $date1))." Monate und ".intval(date("Y", $date2) - date("Y", $date1))." Jahre<br />";

Viele Grüße,
Stefan

PS: So ganz stimmt das aber auch nicht - was machst du bei der Differenz vom 30.1.05 und 10.2.05?

Xyla
12.07.2005, 21:49
Meinst du ungefähr so etwas?
$date1string = "2005-03-16";
$date2string = "2005-05-27";

$date1 = strtotime($date1string);
$date2 = strtotime($date2string);

$differenz = $date2 - $date1;

echo "Datum 1: ".date("d.m.Y",$date1)."<br />Datum 2: ".date("d.m.Y",$date2)."<br />";
echo "Differenz: ".intval($differenz/(60*60*24))." Tage<br />";
echo "detailiert: ".intval(date("j", $date2) - date("j", $date1))." Tage, ".intval(date("n", $date2) - date("n", $date1))." Monate und ".intval(date("Y", $date2) - date("Y", $date1))." Jahre<br />";
Viele Grüße,
Stefan

PS: So ganz stimmt das aber auch nicht - was machst du bei der Differenz vom 30.1.05 und 10.2.05?
Na da hab ich nur Tage!
Ich check Deins mal ab vielen Dank erstmal !

Xyla