Hallo PHP-Laie,
das Problem ist ja geklärt und ich habe in den Eröffnungsbeitrag zum Thread eine kurze Notiz hineineditiert, damit man nicht den ganzen Thread lesen muss um das Missverständnis zu entdecken.
Aber eins wollte ich noch anmerken:
Ersatz soll: https://www.php.net/manual/de/class.datetimeimmutable.php sein. Von der ich (vermultich Blind) kein Anwendungsbeispiel finden konnte welches ohne 30 Codezeilen strtotime ersetzt.
Das war ein Einzeiler und kann auch einer bleiben. Es werden dann 30 Zeichen mehr, nicht 30 Zeilen. Wenn denn dann irgendwann mal die Deprecated-Axt auf strtotime herabstürzen sollte…
echo strtotime("2023-05-25") . "\n";
echo strtotime("05/25/2023") . "\n";
echo strtotime("25.05.2023") . "\n";
echo "And now for something completely different!\n";
echo (new DateTimeImmutable("2023-05-25"))->getTimestamp() . "\n";
echo (new DateTimeImmutable("05/25/2023"))->getTimestamp() . "\n";
echo (new DateTimeImmutable("25.05.2023"))->getTimestamp() . "\n";
Jede Zeile gibt 1684972800 aus. Außer einer…
Das deprecatifizierte strftime ist wohl deswegen missbilligt, weil es keine einheitlichen Ergebnisse liefert, sondern von der Library abhängt, gegen die PHP gelinkt wurde.
Aber grundsätzlich hat ein DateTime-Objekt eine format-Methode, die ebenfalls ziemlich leistungsfähig ist, ohne dass man den (schlecht benannten) IntlDateFormatter dafür auspacken muss.
Insofern: strftime zu ersetzen kann Arbeit bedeuten, verlangt aber keinen Dreißigzeiler. Denk ich…
Rolf
--
sumpsi - posui - obstruxi