dedlfix: datum

Beitrag lesen

echo $begrüßung;

mit einer Schleife und dem Wissen, dass die meisten Tage des Jahres 86400 Sekunden besitzen.
Achwas, warum eine nicht immer richtige Angabe - vielleicht noch mit ausgleichendem Code dazu - verwenden, wenn es mktime() gibt?

die von mir genannten Angaben sind - verbunden mit einem Minimum an Geschick - ausreichend, um mit einmaliger Anwendung von mktime() einen sehr simplen, sehr gut les- und wartbaren, jederzeit[1] funktionierenden Code mit geringstmöglichen Aufwänden zu erzeugen.

Ja, aber warum Sekunden nehmen, wenn Tage gefragt waren? Mir suggerierte deine Antwort, dass man mit Sekunden rechnen soll, dass also auch das Ausgangsdatum in Sekunden umzurechnen wäre. Auf diese Weise ergäbe das auch keinen Anwendungsfall für mktime(). mktime() - ich vergaß es explizit zu erwähnen, es steht jedoch auf der Handbuch-Seite - geht bei ungültigen Werten davon aus, dass es einen richtigen Wert berechnen soll. So ergibt sich

mktime(0, 0, 0, 6, 3, 2008);     // 3.6.
  mktime(0, 0, 0, 6, 3 + 1, 2008); // 4.6.
  mktime(0, 0, 0, 6, 3 + 2, 2008); // 5.6.
  mktime(0, 0, 0, 6, 3 + 3, 2008); // 6.6.

usw. für den OP-Beispiel-Anwendungsfall. Soweit kein Problem, die übergebenen Werte stellen ja ein gültiges Datum dar. Doch selbst beim Monatswechsel ergibt sich nach dem Prinzip ein gültiger und gewünschter Wert.

mktime(0, 0, 0, 6, 29, 2008);     // 29.6.
  mktime(0, 0, 0, 6, 29 + 1, 2008); // 30.6.
  mktime(0, 0, 0, 6, 29 + 2, 2008); // 1.7.
  mktime(0, 0, 0, 6, 29 + 3, 2008); // 2.7.

Und das DateTime-Objekt mit seiner Methode modify() ist auch vorhanden.
Siehe Peters Antwort.

Mit der gleichen Argumentation könnte man mktime() ablehnen, weil das nicht kompatibel zu PHP3 ist. Der OP hat keine Vorgaben zur PHP-Version gemacht und PHP4 ist mittlerweile abgekündigt. Man muss bei jeder verwendeten Funktion prüfen, ob die in der zu verwendeten Version vorhanden ist, nicht nur bei den in 5.x eingeführten.

echo "$verabschiedung $name";