dedlfix: Datum - Zeitumstellung und Schaltjahr berücksichtigen

Beitrag lesen

Hi!

$increase = 60*60*24*31;
Wie Ihr seht fehlt der November 2009, da es dort eine Zeitumsetllung gab und bei der Erhöhung (var $increase) 31 Tage nicht reichen.

Ich sehe nichts, weil du die Ausgabe nicht aufgeführt hast. Ich muss jetzt erstmal mein System anwerfen und hoffe, dass die Ausgabe bei mir die selbe ist wie bei dir. Ich nehme mal an, dass bei mir die selbe Zeitzone konfiguriert ist wie ich.

Ich habe mal in der Ausgabe noch den Tag hinzugefügt:

Oct 2009 01
Oct 2009 31
Dec 2009 01
Jan 2010 01
Feb 2010 01
Mar 2010 04
Apr 2010 05
May 2010 06
Jun 2010 06
Jul 2010 07
Aug 2010 07
Sep 2010 07
Oct 2010 08
Nov 2010 07
Dec 2010 08

In wenigen Jahren wird sich der jetzt schon erkennbare Fehler weiter fortgesetzt haben und als nächstes Problem sichtbar werden.

Rechne mit UTC, dann kannst du auch mit solchen Annahmen, wie jeder Tag habe 24 Stunden, rechnen. Allerdings ist die Annahme, ein Monat habe 31 Tage weiterhin sehr gewagt. Verwende die vorhandenen Funktionen zur Datumsberechnung, beispielsweise mit mktime() beim Monat einen hinzurechnen, was auch mit Jahreswechseln klappt, oder mit strtotime('datumswert +1 month').

Lo!