IntlDate Formatter
Das Datum in der Datenbank liegt im Format 2023-03-19 07:18:22 vor.
Ein Code soll das Datum jetzt ohne Verwendung von setlocale
so umwandeln, das es komplett in Deutsch zu so einer Ausgabe kommt.
Am Sonntag, den 19. März 2023 um 07:18 Uhr
$datenbankdatum = '2023-03-19 07:18:22'; $datum = new DateTime($datenbankdatum); $dateform = new IntlDateFormatter('de_DE.UTF-8', IntlDateFormatter::LONG, IntlDateFormatter::MEDIUM, 'Europe/Berlin', IntlDateFormatter::GREGORIAN, " 'Am' EEEE', den' dd. MMMM YYYY 'um' HH:mm 'Uhr'");
Ausgabe:
/* Am Sonntag, den 19. März 2023 um 07:18 Uhr */ echo $dateform->format($datum);
▼ Kommentare
#1
MJ
Der IntlDate Formatter ist auch meine erste Wahl.
Leider bringt MMM für die Kurzform des Monats so etwas hervor:
Sept. oder Okt.
Erwarten würde ich Sep oder Okt.
Mal mit drei Buchstaben, mal mit vier - und einem unerwünschten Punkt dahinter.
März und April hingegen schreibt er aus. Aber auch da erwarte ich Mär oder Apr.
Das ist nervig und ich hab noch keine Lösung dafür gefunden. Vielleicht jemand anderes hier?
#2
bUTschy
hi MJ, das habe ich damals auch nicht hinbekommen und so ne Krücke wie mit str_replace wollte ich auch nicht verwenden.
Ich habe gerade mal ChatGTP gefragt und der sagt, das es sich mit IntlDateFormatter nicht machen lässt.