Рано или поздно возникает вопрос, как вывести правильно форматированную дату на русском языке.
Например, 31 Мар 2014 12:57:34 .
Можно городить велосипеды с массивами названий месяца, дней недели, но есть вариант быстрого использования на любом доступном языке операционной системы.
Вариант 1
C использование класса DateTime для обработки времени.
Использование функций для работы со временем, когда "время для форматирования" уже использует как-то иной формат, полученный с помощью функции strftime .
Надеюсь кому-то это поможет разобраться с выводом даты в различных форматах, на разных языках.
// Первым шагов устанавливаем требуемый нам язык локализации.Вариант 2
setlocale(LC_TIME, 'ru_RU.UTF-8');
// Создаем объект класса DateTime с заданной датой.
$date_ = new DateTime($date);
// Изменяем формат даты на unixtime
$date_formated = $date_ ->format('U');
// Выводим отформатированную дату на нужном языке
echo strftime('%d %F %Y %H:%M:%S', $date_formated );
Использование функций для работы со временем, когда "время для форматирования" уже использует как-то иной формат, полученный с помощью функции strftime .
function date2unix($str_date, $format = NULL) {
if (!$str_date) return;
if ($format === NULL){
$format = '%d/%m/%Y %H:%M:%S';
}
$timeAr = strptime($str_date, $format);
return mktime($timeAr["tm_hour"], $timeAr["tm_min"], $timeAr["tm_sec"], $timeAr["tm_mon"] + 1, $timeAr["tm_mday"], $timeAr["tm_year"] + 1900);
}
function unix2date($time,$format = NULL){
if (!(int)$time) return FALSE;
if ($format === NULL){
$format = '%d %F %Y %H:%M:%S';
}
return strftime($format, $time);
}
// Устанавливаем локаль текущего формата времени, например немецкий
setlocal(LC_TIME, 'de_DE.UTF-8');
// получаем время в формате unixtime
$date = date2unix($current_date);
// Устанавливаем локаль для вывода даты
setlocal(LC_TIME, 'ru_RU.UTF-8');
// Выводим отформатированную дату на русском языке
echo unix2date($date);
Надеюсь кому-то это поможет разобраться с выводом даты в различных форматах, на разных языках.
Комментарии
Открыть систему комментариев