Vinzenz Mai: Monate addieren

Beitrag lesen

Hallo Bernd,

ich habe eine Problem mit der Addition von Monaten mit Date();

Gegebenes Datum soll um 6 Monate erhöht werden. Das funktioniert z.B. beim  Datum 31.07.2010. Da macht er brav den 31.01.2011 draus. Beim 31.10.2010 macht er dann den 01.05.2011 draus. Addiert also einfach einen Tag. Woran liegts?

möchtest Du in den Fällen, wenn der Zielmonat weniger Tage hat als der Starttag im Ausgangsmonat, den Monatsletzten des Zielmonats als Ergebnis haben?

Gilt dies auch für den 30. August? Möchtest Du dann den 28. bzw. in Schaltjahren den 29. Februar des Folgejahres haben?

Wenn ja, so prüfe nach, ob der Monatstag kleiner ist als der Monatstag des Ausgangsdatums. Wenn dies der Fall ist, so setze den Monatstag des Zieldatums auf 0. Javascript kümmert sich nach meiner Erfahrung (nochmals geprüft in Firefox 3.6.10, Opera 10.63 und IE 8, alle unter Windows 7) um den Rest, d.h. entgegen dem, was ich auf die Schnelle in Herstellerspezifikationen und Beschreibungen wie auf SELFHTML gefunden habe, verhält sich Javascript beim Date-Objekt analog zur PHP-Funktion mktime(), Beispiele #2 und #3 - und dürfte wohl ECMAScript (ich hab' in Version 5 geschaut) entsprechen.

Wenn dies jedoch *nicht* Deine Definition von "korrekt" ist und da Du mit Javascripts Ansicht von Korrektheit nicht zufrieden bist, dann spezifiere Deine Ansicht.

Freundliche Grüße

Vinzenz