0

I googled quite a bit and tried to find out why my german date won't put out "03. März 2016" but instead always prints "03. M�rz 2016"

<?php 
    $event_date_format = DateTime::createFromFormat('Ymd', $event_date[0]);


    setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');
    echo strftime("%A, %d. %B %Y", $event_date_format->getTimestamp()); // Donnerstag, 03. M�rz 2016

    echo $event_date_format->format('F'); // March
?>

enter image description here

Looks like this:

enter image description here

Umlauts work correctly and fine for the rest of the page.

I was able to fix it with

$fmt = new IntlDateFormatter('de_DE' ,IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
$fmt->setPattern("MMMM");
$event_date_format = DateTime::createFromFormat('Ymd', $event_date[0]);
echo $fmt->format($event_date_format);
matt
  • 42,713
  • 103
  • 264
  • 397

0 Answers0