Сразу скажу, что начинающий, если вопросы покажутся комуто глупыми - огромная проьба ногами не пинать, без дела не флудить и т.д., отнестись с пониманием, Москва она ведь тоже не сразу строилась. Итак к делу. Появилась надобность отбражать даты на руссом языке. Может существует какое-то универсальное средство решения данной проблемы? Или надо писать скрипт с нуля?
PHP: <?php class wfDate { static $aMonth = array(0,'Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'); static $aMonth_ = array(0,'Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря'); static $aNameDay = array(0,'понедельник','вторник','среда','четверг','пятница','суббота','воскресенье'); static function GetDateRus($date, $aParams = array()) { $d = explode('-', (string)$date); if (sizeof($d) != 3) return ''; if (!checkdate($d[1], $d[2], $d[0])) return ''; $s = (int)$d[2] . ' ' . strtolower(wfDate::$aMonth_[(int)$d[1]]); if (isset($aParams['name_day'])) { $week_num = date('w', mktime(0, 0, 0, $d[1], $d[2], $d[0])); if ($week_num == 0) $week_num = 7; $s .= ', ' . wfDate::$aNameDay[$week_num]; } return $s; } } // пример использования echo wfDate::GetDateRus('2009-02-15'); echo '<br />'; echo wfDate::GetDateRus('2009-01-11', array('name_day'=>true)); ?> можешь дописать год там и все что угодно
Вот вариант попроще: Чтобы тебе мозг не перезагружать! PHP: <? function show_date() { $day = date('d'); $mounth = date('m'); $year = date('Y'); $data = array('01'=>'января','02'=>'февраля','03'=>'марта','04'=>'апреля','05'=>'мая','06'=>'июня', '07'=>'июля', '08'=>'августа','09'=>'сентября','10'=>'октября','11'=>'ноября','12'=>'декабря'); foreach ($data as $key=>$value) { if ($key==$mounth) echo "<b><font color=#F84501>$day $value $year</font></b>"; } }
Еще проще) PHP: <?php function getRuDate($date){ $en = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); $ru = array("Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"); return str_replace($en, $ru, $date); } echo "Сегодня ".getRuDate(date("j M Y")); ?>
не годится если нужно не "Фев" а "февраля" Если попытаться вывести дату с полным месяцем то получится "19 февраль" 2009. Так что самописные функции весьма полезны
Хорошо бы, но... клиенту пофигу моя лень С меня вот потребовали недавно, чтобы даты семинаров писались как "с 15 февраля по 1 марта 2009 года". И правильно сделали - так оно куда красивее.