MySQL формат даты

При хранении даты в MySQL под типом Date (), она имеет формат 2011-07-11  (год-месяц-день). В некоторых случаях даже не имея разделителя  20110711.

дата-в-базе-300x23

Поскольку в русскоязычных странах более привычным к восприятию считается формат 11.07.2011 (день.месяц.год), то при выводе даты из базы данных, возникает необходимость в её преобразовании.

Преобразовать дату можно несколькими способами.

  • при помощи php кода
  • воспользовавшись командой DATE_FORMAT () при выборке из базы.

Первый способ применяется в  тех случаях, когда необходимо вывести небольшое количество записей или же когда разработчик не подозревает о существовании второго способа.

Второй способ применим во всех случаях, вне зависимости сколько записей необходимо извлечь из базы, при этом он осуществляет минимальную нагрузку на сервер в отличии от способа с php кодом.

Рассмотрим пример выполнения:

Допустим существует таблица message, которая содержит ячейку send_data с датой в формате  2011-07-11.

Для извлечения и преобразования даты напишем следующий код:

$message = mysql_fetch_array(mysql_query("SELECT DATE_FORMAT(send_data, '%e.%m.%Y') FROM message"));

Далее в том месте где необходимо вывести преобразованную дату, выводим массив $message любой, удобной для вас командой:

echo $message['0'];

к примеру если в send_data находится 2011-05-03 то мы получим 03.05.2011.

Номер индекса в массиве $message указываем каким по счету начиная от 0, в команде SELECT извлекается необходимое значение с преобразованной датой. К примеру при запросе:

$message = mysql_fetch_array(mysql_query("SELECT title, text, DATE_FORMAT(send_data, '%e.%m.%Y') FROM message"));

вывод даты будет осуществляться с индексом 2:

echo $message['2'];

Преобразовать дату при помощи DATE_FORMAT () можно в любой вид и очередность при помощи подстановки ключей, полный список которых представлен в таблице.

Ключ Описание
%M Название месяца (январь…декабрь)
%W Название дня недели (воскресенье…суббота)
%D День месяца с английским суффиксом (0st, 1st, 2nd, 3rd и т.д.)
%Y Год, число, 4 разряда
%y Год, число, 2 разряда
%X Год для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с ‘%V’
%x Год для недели, где воскресенье считается первым днем недели, число, 4 разряда, используется с ‘%v’
%a Сокращенное наименование дня недели (Вс…Сб)
%d День месяца, число (00…31)
%e День месяца, число (0…31)
%m Месяц, число (00…12)
%c Месяц, число (0…12)
%b Сокращенное наименование месяца (Янв…Дек)
%j День года (001…366)
%H Час (00…23)
%k Час (0…23)
%h Час (01…12)
%I Час (01…12)
%l Час (1…12)
%i Минуты, число (00…59)
%r Время, 12-часовой формат (hh:mm:ss [AP]M)
%T Время, 24-часовой формат (hh:mm:ss)
%S Секунды (00…59)
%s Секунды (00…59)
%p AM или PM
%w День недели (0=воскресенье…6=суббота)
%U Неделя (00…53), где воскресенье считается первым днем недели
%u Неделя (00…53), где понедельник считается первым днем недели
%V Неделя (01…53), где воскресенье считается первым днем недели. Используется с `%X’
%v Неделя (01…53), где понедельник считается первым днем недели. Используется с `%x’
%% Литерал `%’.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *