PHP преобразовать дату из формата MySQL в нормальный вид
Возникла необходимость перевести дату из базы MySQL вида «2011-06-10 15:18:00» в читабельный для пользователя вид, средствами php. (Как это сделать средствами MySQL можно прочитать здесь). Вот в такой «4 июня 2011, 14:57».
Заметка скорее для закладок и экономии времени так как такая проблема встречается часто, а решение вспоминается долго:)
Ниже представлен способ.
# Переменная с датой из базы
$mysqldate = '2011-06-10 15:18:00';
# Перевод даты из базы в формат времени Unix
# получается примерно такое 1307719080
$time = strtotime($mysqldate);
# Создаем ассоциативный массив где каждому числу месяца присваем название месяца
$month_name = array( 1 => 'января', 2 => 'февраля', 3 => 'марта',
4 => 'апреля', 5 => 'мая', 6 => 'июня',
7 => 'июля', 8 => 'августа', 9 => 'сентября',
10 => 'октября', 11 => 'ноября', 12 => 'декабря'
);
#Получаем название месяца, здесь используется наш созданный массив
$month = $month_name[ date( 'n',$time ) ];
$day = date( 'j',$time ); # С помощью функции date() получаем число дня
$year = date( 'Y',$time ); # Получаем год
$hour = date( 'G',$time ); # Получаем значение часа
$min = date( 'i',$time ); # Получаем минуты
$date = "$day $month $year, $hour:$min"; # Собираем пазл из переменных
echo "Дата: ".$date; #Выводим преобразованную дату на экран
А можно не изобретать велосипед:
/* Установливаем русскую локаль */
setlocale(LC_ALL, ‘ru_RU.KOI8-R’);
/* друние варианты */
#setlocale(LC_ALL, ‘ru_RU.CP1251’);
#setlocale(LC_ALL, ‘ru_RU.UTF-8’);
$mysqldate = ‘2011-06-10 15:18:00’;
$time = strtotime($mysqldate);
echo strftime(«%A %e %B %Y», $time);
Но это если склонять месяца не надо.
Можно сделать еще вот так, средствами самого MySQL
В статье парсер немного код съел, вместо:
=>
должно было быть:
=>
подправили:) спасибо
Спасибо за статью:)
Супер. Всё сразу получилось.
А у меня вот не выходит, правда из базы у меня выходит не тире между числами, а слэш «/»
Очень помогла ваша статья, как раз то что нужно… мне нужно было вывести дату регистрации пользователя и БД… в базе она была в виде числа 1409715555 … бился, бился и с вашей помощью получилось: 3 сентября 2014, 13:39 …. Спасибо! Очень с экономил много времени.
Хорошая статья! Спасибо.