Rolf B: PHP: strftime ist DEPRECATED

Beitrag lesen

Hallo Bernd,

es ist leider so, dass jede PHP Version inkompatible Changes mitbringt. Funktionen, auf die man sich Jahrzehnte verlassen hat, werden auf einmal als missbilligt erklärt. Nicht ohne Grund, aber wenn man ein PHP Projekt nutzt, dass sich offiziell als beendet erklärt hat, kann das schnell unangenehm werden.

Welche Version verwendest Du? Kennst Du die Klon-Versionen? Diese werden ggf. noch gepflegt, ich weiß nur nicht, wie kompatibel die Datenbestände sind.

Deswegen muss man regelmäßig ein Auge auf den Anhang des PHP-Handbuchs haben, wo Version für Version aufgelistet ist, welche Features neu missbilligt werden und welche Features sich inkompatibel ändern.

Zu strftime: https://www.php.net/manual/de/function.strftime.php

strftime wird stumpf an die zu Grunde liegende C-Library durchgereicht, mit der PHP compiliert wurde, und hier gibt es Implementierungsunterschiede. Es kann Dir also passieren, dass bestimmte strftime-Symbole auf dem einen Server funktionieren und auf einem anderen nicht. Ich nehme an, dass das der Grund für die Missbilligung ist.

Das Handbuch sagt: Nimm date() oder IntlDateFormatter::format().

Die date()-Funktion verwendet eigene Formatierungscodes, wie sie auch von der format()-Methode der DateTime-Objekte genutzt werden.

Der IntlDateFormatter ist ähnlich der Intl.DateTimeFormat-Klasse aus JavaScript und implementiert wie diese die Formatierung der ICU-Library.

Du kannst Dir aussuchen, was Dir lieber ist. Du kannst beiden einen Unix-Timestamp übergeben. Hast Du einen solchen? Oder hast Du ein DateTime-Objekt? In dem Fall solltest Du einfach dessen format-Methode verwenden.

Rolf

--
sumpsi - posui - obstruxi