Если у вас установлено расширение Интернационализация , вы можете использовать класс IntlDateFormatter .
Он действительно довольно мощный и отображает дату и время в правильном формате для локали, на которую вы ориентируетесь.
Например, для Германии может быть:
// create format
$fmt = datefmt_create("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
// output (using current time)
echo datefmt_format($fmt , time());
Какие выходы:
Динстаг, 29 ноября 2011 г.