Во время разработки компонента "Вопрос-Ответ" столкнулся с необходимостью выводить дату  и время в формате "9 мая 2011, 10:39". Как известно, PHP и MySQL могут выводить название месяца, но, к сожалению, только на английском. Чтобы справиться с этой задачей пришлось писать на PHP такую функцию :

 
function getRusMonth($date,$delimiter,$month_position){
 $temp=explode($delimiter,$date);
 if($temp[$month_position-1] > 12 || $temp[$month_position-1] < 1) return false;
 $aMonth = array('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
 $temp[$month_position-1]= $aMonth[$temp[$month_position-1] - 1];
 return implode($delimiter,$temp); 
}

Краткое пояснение к параметрам функции:

  • $date - Дата с численым обозначением месяца. Пример - 21-02-2011;
  • $delimiter - разделитель даты. Пример - " ";
  • $month_position - Позиция месяца. Например - 2

Таким образом, на входе мы имеем дату в формате "9 05 2011, 10:39", а на выходе - "9 мая 2011, 10:39".

В БД MySQL время хранится в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС". Для того, чтобы преобразовать дату в нужный нам формат, проще использовать средства самого MySQL.

Для этого необходимо использовать функцию DATE_FORMAT(). Пример ниже:

SELECT DATE_FORMAT(date, '%e %m %Y, %H:%i') as date FROM #__table

В итоге, Вы получите дату в требуемом формате, а затем - с помощью функции получаете дату с месяцем на русском языке.

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

Защитный код
Обновить