Question

I try to display a date in German but it doesn't work. I'm using PHP with XAMPP.

These are my approaches:

function get_Datetime_Now() {
setlocale (LC_TIME, "de_DE");
$tz_object = new DateTimeZone('Europe/Zurich');
$datetime = new DateTime();
$datetime->setTimezone($tz_object);     
return $datetime->format('l, d. F Y  ');
}

echo get_Datetime_Now();

It returns "Sunday, 09. February 2014" but I wan't "Sonntag, 09. Februar 2014" (German language).

I also tried this:

setlocale(LC_TIME, "de_DE");
echo strftime("%A, %d. %B %Y");

It also returns "Sunday, 09. February 2014". I saw many examples on the internet, which don't work (at least on my environment).

Are there settings that I should check?

I appreciate any help!

Thx in advance, shivan

Was it helpful?

Solution

You are probably using a windows machine which has different language codes in PHP than a Unix based one.

Try:

setlocale(LC_TIME, 'de_DE', 'deu_deu');

This will first try to set it to 'de_DE' (Linux/Unix) and have the 'deu_deu' code as a fallback for windows (PHP Version >= 4.3).

Example in the german PHP documentation

OTHER TIPS

You can try with :

setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');
echo strftime("%A, %d. %B %Y");

worked for me

I just comment to thank Tim Bodeit, and if someone is looking to set the month in spanish, this is the code that worked to me:

setlocale(LC_TIME, 'es_ES', 'esp_esp');

The locale parameters are others compared linux to windows

See here:

Usually it's "DEU" or "GERMAN" under Win.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top