bUTschy.de

  • code

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);
  • 2 Kommentare
  • 754 Klicks

▼ Kommentare


#1

AvatarMJ

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

AvatarbUTschy

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.


Kommentar hinzufügen