Работаем с датой или название месяца по русски
При создании сайтов, постоянно возникает необходимость работы с датами, датой и временем и т.д. В базе данных они хранятся как правило в полях DATE, DATETIME, в формате не особо удобном для чтения, обычным пользователем гггг-мм-дд либо гггг-мм-дд чч:мм:сс. Согласитесь куда приятнее и удобнее читать дату, к примеру: 12 февраля 2010, нежели 2010-02-12. Решается данный вопрос довольно просто, для этих целей мы написали, на php небольшую функцию которая выводит дату и если нужно время, в удобо читаемом формате.
Вот собственно сама функция:
// Собственно $дата, $время, $секунды, $разделитель даты и времени function ruData($data, $time = false, $sek = false, $razd = ', '){ $dat = preg_split("(-| |:)", $data); $mon = array(1 => 'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'); $mes = (!empty($dat[1]) && ($dat[1] < 10)) ? $mon[$dat[1]{1}] : $mon[$dat[1]]; $day = (!empty($dat[2]) && ($dat[2] < 10)) ? $dat[2]{1} : $dat[2]; $sek = (!empty($dat[5]) && ($sek == true)) ? ":".$dat[5] : NULL; $time = (!empty($dat[3]) && !empty($dat[4]) && ($time == true)) ? $razd.$dat[3].":".$dat[4].$sek : NULL; return $day." ".$mes." ".$dat[0].$time; }
Пример работы функции:
// Выводит - 12 февраля 2010 echo ruData("2010-02-12 18:32:15"); // Выводит - 12 февраля 2010, 18:32 echo ruData("2010-02-12 18:32:15",true); // Выводит - 12 февраля 2010, 18:32:15 echo ruData("2010-02-12 18:32:15",true,true);
Все просто, удобно и наглядно! Выводим дату или дату и время в удобо читаемом виде, при этом в базе данных она хранится в формате удобном для обработки, сортировки и сравнения.