2 Daten: Tage dazwischne berechnen
Maresa P.
- php
0 Thomas Luethi0 Markus0 TomIRL
Hallo,
mit stehen zwei Daten (Plural von Datum) im Format DD.MM.YYYY zur Verfügung:
Bspl.:
$datum_von = '17.11.2003'
$datum_bis = '19.12.2003'
Ich möchte nun mit PHP berechnen, wieviele Tage zwischen $datum_von und $datum_bis liegen.
Wie ist das zu realisieren.
liebe Grüße
Maresa P.
Hallo,
mit stehen zwei Daten (Plural von Datum) im Format DD.MM.YYYY zur Verfügung:
$datum_von = '17.11.2003'
$datum_bis = '19.12.2003'
Ich möchte nun mit PHP berechnen, wieviele Tage zwischen $datum_von und $datum_bis liegen.
Wandle diese Daten mit den geeigneten String- und Datumsfunktionen
http://www.php.net/manual/de/ref.strings.php
http://www.php.net/manual/de/ref.datetime.php
in UNIX-Timestamps um, berechne damit die Differenz in Sekunden
und wandle diese dann wieder in Tage um.
Gruesse,
Thomas
Hi Thomas,
gibt es in PHP auch die Möglichkeit die laufende Woche zu ermitteln?? Also Wie G:i:s, dass man die laufende Woche z.B. Woche "48" erhält??
Greets Tom1tk
Hi Thomas,
gibt es in PHP auch die Möglichkeit die laufende Woche zu ermitteln?? Also Wie G:i:s, dass man die laufende Woche z.B. Woche "48" erhält??
date (W) erlaubt die ausgabe der Woche!
Aber nur der aktuellen Woche.
TomIRL
Hallo,
date (W) erlaubt die ausgabe der Woche!
Aber nur der aktuellen Woche.
Wie kommst Du auf diese (unwahre) Einschraenkung?
Lies mal das Manual zu date():
http://www.php.net/manual/de/function.date.php
Der Funktion kann man einen optionalen zweiten Parameter
im Unix-Timestamp-Format geben.
$samichlaus="6 december 2003";
$zeitstempel=strtotime($samichlaus);
$woche=date("W",$zeitstempel);
print("<p>Samichlaus ($samichlaus) ist in der Kalenderwoche $woche.</p>");
Ausgabe:
Samichlaus (6 december 2003) ist in der Kalenderwoche 49.
Und damit Du jetzt nicht behauptest, das "49" sei ja die aktuelle Woche,
habe ich es auch noch mit einem anderen Datum ausprobiert:
Heiligabend (24 december 2003) ist in der Kalenderwoche 52.
Gruesse,
Thomas
P.S. Die Umwandlung vom (veralteten) "deutschen" Datumsformat dd.mm.yyyy
in einen Unix-Timestamp muss wie erwaehnt ueber einen Umweg mit
String-Funktionen geschehen.
Man kann strtotime() _nicht_ direkt mit einem "deutschen" Datum fuettern.
http://www.php.net/manual/de/function.strtotime.php
Am besten du wandelst das Datum mit strtotime() in einen UNIX Timestamp um.
Anschließend zieht du dann beide Werte voneinader ab. Die Differenz kannst du dann ja einfach von Sekunden wieder auf Stunden oder Tage wieder runterrechnen.
ICh hatte vor ein paar Tagen mal eine Lösung gesucht und gefunden.
$von_arr = explode (".", $termin[von]);
//print_r ($von_arr);
$rd_von="$von_arr[2]"."$von_arr[1]"."$von_arr[0]";
print ("$rd_von<br>");
$b_von = mktime(0,0,0,"$von_arr[1]","$von_arr[0]","$von_arr[2]");
$bis_arr = explode (".", $termin[bis]);
//print_r ($bis_arr);
$rd_bis="$bis_arr[2]"."$bis_arr[1]"."$bis_arr[0]";
print ("<br>$rd_bis<br>");
$b_bis=mktime(0,0,0,"$bis_arr[1]","$bis_arr[0]","$bis_arr[2]");
//Berechnung der Tage
$btage=$b_bis-$b_von;
$tage=$btage / 86400;
Beachte hierbei Sommerzeit/Winterzeit Probleme.
TomIRL