Und was ist mit September? (php DateTime)
Jörg
- php
0 Raketenwilli0 Jörg
Hallo,
warum ergibt der Code:
echo (new DateTime('next month'))->format('m');
echo "---".(new DateTime('this month'))->format('m');
am 31.08.22 (also heute) ausgeführt:
10---08
?
Ich hätte jetzt 10---09 als Ergebnis erwartet.
Jörg
Die Erkennung von Strings wie 'next month' durch die DateTime-Klasse ist überraschend und kopfschmerzträchtig. Ich vermeide das, wenn es irgend geht. Hilft Dir …
<?php
echo (new DateTime('now +1 month' ) )->format('Y-m-d'). PHP_EOL;
echo (new DateTime('2022-08-01 +1 month' ) )->format('Y-m-d'). PHP_EOL;
weiter? Die zweite Zeile geht vom Monatsanfang aus. Durch Deine Angabe 'next month' werden zum heutigen 31.08.2022 eben 31 Tage (die Länge des aktuellen Monats) addiert - und da ist halt der 01. Oktober: „Kann ja keiner ahnen, was Du willst.“
Du musst/kannst aber als Ausgangspunkt zum Monatsanfang...
Die Erkennung von Strings wie 'next month' durch die DateTime-Klasse ist überraschend und kopfschmerzträchtig. Ich vermeide das, wenn es irgend geht. Hilft Dir …
Jep, klar hilft das.
Du musst/kannst aber als Ausgangspunkt zum Monatsanfang...
Ok.
Das Script läuft normalerweise immer am 25. des lfd. Monats, daher ist das noch nie aufgefallen.
Danke.
Jörg