4

im trying to print the date in german with strftime. I already tried

date_default_timezone_set('Europe/Berlin');
setlocale(LC_ALL, "de_DE", "de_DE@euro", "deu", "deu_deu", "german");
$time = strftime("%B", 1323956220);
echo $time;  //I want to see "Dezember", but I see "December" instead

but it didnt work. Am I missing something?

Edit: sorry I missed the strftime funciton :P

4

2 回答 2

11

My guess: the locale is actually called de_DE.utf8 on your machine (it is on mine). Does this work for you?

setlocale(LC_ALL, "de_DE.utf8"); // or LC_TIME
echo strftime('%B', 1323956220);

BTW: on Linux you can use locale -a to see what's available.

于 2011-12-15T14:20:56.790 回答
-1

You'll need the Internationalization extension installed, but I recommend using the IntlDateFormatter class

Have a look at the manual first, but a quick example might look like this:

$fmt = datefmt_create("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
echo datefmt_format($fmt , time());

Which outputs this:

Donnerstag, 15. Dezember 2011

于 2011-12-15T14:19:49.200 回答