Есть переменная в которой лежит дата. Нужно достать дату перевести в другой формат. Пример Есть $a = 'Май 2011 г.'; Нужно $b = '05_11' так понимаю можно для $b организовать нечто подобное Код (Text): if ($c == 'Май') { $d = 05; } .... if ($c == 'Январь') { $d = 01; } $b = $d.'_'.$g; где переменная $g это последние 2 цифры года. Догадываюсь что нужны регулярные выражения, но даже не знаю с какой стороны их туда крутить Может есть варианты обойтись без регулярных выражений?
по твоему примеру простейшим способом будет воспользоваться функцией http://php.net/manual/ru/function.explode.html разбить твою русскую дату по пробелу. заранее сделать ассоциативный массив формата '01' => 'январь' после чего с помощью функции http://php.net/manual/ru/function.array-search.html найти индекс месяца ну а как преобразовать 2011 в 11 думаю сам найдешь способ, вариантов полно
PHP: <?php error_reporting (E_ALL); $date = 'Май 2011 г.'; $vocabulary = array ( '01' => 'Январь', '02' => 'Февраль', '03' => 'Март', '04' => 'Апрель', '05' => 'Май', '06' => 'Июнь', '07' => 'Июль', '08' => 'Август', '09' => 'Сентябрь', '10' => 'Октябрь', '11' => 'Ноябрь', '12' => 'Декабрь' ); $date = explode (' ', $date); $date = array_search ($date[0], $vocabulary) . '_' . substr ($date[1], 2); echo $date;
kentastik77, в случае использования регулярных выражений это была бы функция preg_replace, как вариант...