Hallo Ottmar,
wie Du die Laufzeit mit den Monaten verheiratest, hat Dedlfix ja schon angedeutet. Achte beim variable parsing darauf, doppelte Anführungszeichen zu verwenden; mit einfachen geht's nicht. Übrigens ist das '+' in date_modify($datum, '+6 month')
optional, das kann Dir das Leben erleichern.
Noch zwei Hinweise von mir:
Zum einen ist es einfacher, den aktuellen Timestamp über ein parameterloses date_create() zu holen, oder mit new DateTime()
. Zuerst eine String-Repräsentation zu erzeugen und die dann wieder in ein DateTime-Objekt umzuwandeln ist unnötig umständlich.
Zum zweiten muss man mit date_modify aufpassen, weil diese Methode bösartig ist: sie verändert das übergebene DateTime-Objekt. Folgender Code macht nicht, was man naiv glauben könnte:
$jetzt = date_create();
$spaeter = date_modify($jetzt, '+6 month');
Nachdem diese Befehle durchlaufen wurden, sind $jetzt
und $spaeter
beide 6 Monate in der Zukunft. Man kann sich hier mit dem clone-Operator helfen, der Objekte dupliziert und damit verhindert, dass das in $jetzt
angesprochende DateTime-Objekt verändert wird.
$jetzt = date_create();
$spaeter = date_modify(clone $jetzt, '+6 month');
Rolf
sumpsi - posui - clusi