Возник такой вопрос, получаю текст с данными, начинается обычно так: "Родился 21 февраля 1956 года ............"
Нужно вырезать дату и перевести в вид "1956-02-21"
Проблема в том, что в тексте может быть полная дата рождения, может только год рождения, может вообще ничего не быть.
Помогите составить регулярное выражение, или может другим путём реализовать задуманное.
Получаю парсером со стороннего сайта в виде текста, который начинается как я написал выше.
Откуда получаете? В каком виде? Каким способом?
Так попробуйте:
$string = "Родилась 1 октября 1983 года. В мороз и солнце, в день чудесный"; $months = array('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'); foreach ($months as $key => $mo){ $month = $key >= 9 ? $key + 1 : 0 . ($key + 1); } } $bithday_date = $match[2].'-'.$month.'-'. ($match[1] < 10 ? 0 . $match[1] : $match[1]); $bithday_date = $match[2].'-01-01'; } else { $bithday_date = '1970-01-01'; } echo $bithday_date;
Проблема в том, что в тексте может быть полная дата рождения, может только год рождения, может вообще ничего не быть.
Проблема?Проблема в том,
else {$bithday_date = '1970-01-01';}