Die Funktion strftime war in Verbindung mit setlocale() lange Zeit das Mittel der Wahl um Monats- und Wochentagsnamen in einer anderen Sprache auszugeben. Mit PHP 9 wird diese Funktion aus PHP entfernt.
Welche Alternativen bieten sich an?
Es gibt Lösungen mit der IntlDateFormatter Klasse. Beispiel:
Hier wird das icuFormat benötigt. Bequemer und für die meisten Fälle ausreichend wäre hier ein Format wie es auch von Date und DateTime::format benutzt wird.
Andere Alternativen zu INTL ?
Welche Alternativen bieten sich an?
Es gibt Lösungen mit der IntlDateFormatter Klasse. Beispiel:
PHP-Code:
function formatIntl(DateTimeInterface $date, string $format, string $language) {
//check calendar in $language
$calType = (stripos($language,"@calendar") > 0
AND stripos($language,"gregorian") === false)
? IntlDateFormatter::TRADITIONAL
: IntlDateFormatter::GREGORIAN;
$intlFormatter = datefmt_create( $language ,
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
$date->getTimezone(),
$calType,
$format);
return datefmt_format($intlFormatter ,$date);
}
$dt = new DateTime('2022-02-01');
echo formatIntl($dt,'EEEE d.MMMM Y','de_DE');
//Dienstag 1.Februar 2022
Andere Alternativen zu INTL ?
Kommentar