Falsche Datumberechnung mit php?!
Falsche Datumberechnung mit php?!
am 22.10.2006 11:43:57 von naturman
Hallo,
ich weiss nicht mehr, was ich dagegen tun kann. Ich habe ein Ausgangsdatum
und möchte spätere Datums berechnen. Dabei macht php Fehler:
$starttest = strtotime('2006-10-01');
$pm27 = strftime("%Y-%m-%d",$starttest+27*86400);
$pm28 = strftime("%Y-%m-%d",$starttest+28*86400);
$pm29 = strftime("%Y-%m-%d",$starttest+29*86400);
$pm30 = strftime("%Y-%m-%d",$starttest+30*86400);
echo"($pm27)($pm28)($pm29)($pm30)
";
Die Ausgabe zeigt für $pm28 und $pm29 den gleichen Wert: 2006-10-29
Das geschieht aber nur bei Startdatum '2006-10-01'. Bei Start '2006-12-01'
stimmt alles.
Woran liegt das? Wie kann ich das verhindern?
Vielen Dank für Hilfe.
Re: Falsche Datumberechnung mit php?!
am 22.10.2006 11:53:26 von Jens Riedel
> ich weiss nicht mehr, was ich dagegen tun kann. Ich habe ein Ausgangsdatum
> und möchte spätere Datums berechnen. Dabei macht php Fehler:
Nein, PHP macht alles korrekt.
>
> $starttest = strtotime('2006-10-01');
> $pm27 = strftime("%Y-%m-%d",$starttest+27*86400);
> $pm28 = strftime("%Y-%m-%d",$starttest+28*86400);
> $pm29 = strftime("%Y-%m-%d",$starttest+29*86400);
> $pm30 = strftime("%Y-%m-%d",$starttest+30*86400);
> echo"($pm27)($pm28)($pm29)($pm30)
";
>
> Die Ausgabe zeigt für $pm28 und $pm29 den gleichen Wert: 2006-10-29
> Das geschieht aber nur bei Startdatum '2006-10-01'. Bei Start '2006-12-01'
> stimmt alles.
>
> Woran liegt das?
Schau mal in den Kalender und überlege, welche Besonderheit am 29.10.
ansteht. Kleiner Tip: letzter Sonntag im Oktober.
> Wie kann ich das verhindern?
Berücksichtige das oben genannte Phänomen ;-)
Gruß,
Jens
--
Der Kluegere gibt nach - Eine traurige Wahrheit:
sie begruendet die Weltherrschaft der Dummen.
- Marie von Ebner-Eschenbach
Re: Falsche Datumberechnung mit php?!
am 22.10.2006 12:06:52 von Carsten Wiedmann
Alfred Weber schrieb:
> $starttest = strtotime('2006-10-01');
> $pm27 = strftime("%Y-%m-%d",$starttest+27*86400);
> $pm28 = strftime("%Y-%m-%d",$starttest+28*86400);
> $pm29 = strftime("%Y-%m-%d",$starttest+29*86400);
> $pm30 = strftime("%Y-%m-%d",$starttest+30*86400);
> echo"($pm27)($pm28)($pm29)($pm30)
";
Warum lässt du dir die späteren Datums nicht gleich von strtotime() ausgeben
(das rechnet korrekt...)?
| $pm27 = strftime('%Y-%m-%d', strtotime('2006-10-01 +27 days'));
Gruß
Carsten
Re: Falsche Datumberechnung mit php?!
am 22.10.2006 12:08:34 von naturman
Klar, wieso bin ich nicht selbst darauf gekommen?
Vielen Dank für die schnelle Antwort.
Re: Falsche Datumberechnung mit php?!
am 22.10.2006 12:13:46 von naturman
Hey, danke
das ist auch eine sehr gute Lösung.