В PHP есть отличная функция для форматирования дат strftime, которую можно использовать следующим образом:
function get_russian_date($datetime) { setlocale(LC_ALL, 'rus'); $m = strftime("%m", $datetime); return strftime("%d %b %Y", $datetime); }
единственный её недостаток в том, что она не склоняет названия месяцев. Чтобы устранить этот недостаток можно использовать самодельную функцию:
function get_russian_date($datetime) { $d = getdate($datetime); switch ($d['mon']) { case 1: $m='января'; break; case 2: $m='февраля'; break; case 3: $m='марта'; break; case 4: $m='апреля'; break; case 5: $m='мая'; break; case 6: $m='июня'; break; case 7: $m='июля'; break; case 8: $m='августа'; break; case 9: $m='сентября'; break; case 10: $m='октября'; break; case 11: $m='ноября'; break; case 12: $m='декабря'; break; } return $d['mday'] . ' ' . $m . ' ' . $d['year']; }
Чудесно! Только вместо свича лучше использовать массив: $months = array(‘нулябрь’, ‘январь’, ‘февраль’, ‘март’, ‘апрель’, ‘май’, ‘июнь’, ‘июль’, ‘август’, ‘сентябрь’, ‘октябрь’, ‘ноябрь’, ‘декабрь’);
А далее: $month = $months[$d[‘mon’]];
Комментарий by Holy Diver — 22 августа 2011 @ 20:12
на С++ массив обычно лучше чем switch, а вот на PHP даже не знаю, ведь тут получается, что мы создаём массив только для того, чтобы один раз взять из него элемент. Есть в PHP аналог C++ -го статического массива?
Комментарий by admin — 26 августа 2011 @ 12:28