Helmut: strtotime()

Beitrag lesen

problematische Seite

Moin Rolf,

Leider liefert die fehlerhafte Version am 31.07.2023 statt 202306 auch 202307. Der Mai wir allerdings wieder richtig ermittelt.

Ist das jetzt ein Bug in strtotime(), oder mache ich nur einen Denkfehler?

die erste Anmerkung in der verlinkten Dokumentation lautet:

Hinweis:

"Relatives" Datum bedeutet in diesem Fall auch, dass nicht angegebene Komponenten des Datums-/Zeitstempels unverändert aus dem baseTimestamp übernommen werden. Das heißt, dass strtotime('February') am 31. Mai 2022 als 31 February 2022 interpretiert wird, was zum Zeitstempel 3 March führt (in einem Schaltjahr wäre es 2 March). Stattdessen strtotime('1 February') oder strtotime('first day of February') zu verwenden, würde dieses Problem vermeiden.

Das dürfte deine Frage beantworten 😉

Dann sollte ich noch testen, was mit Januar als aktuellem Monat passiert, ob dann für die Vormonate wenigstens das Jahr richtig um eins zurückgesetzt wird.

Viele Grüße
Helmut