Автор оригинала: dimagolov
nexen видимо мало того, что относится к неоперабельным пациентам, так еще и свято верит что его советы кому-то будут полезны
как знать. . . - я просто не стесняюсь своих ошибок, если даже их увидят все . . .в любом случае будет польза если код говно , - все увидят, как не надо делать, если нормальный - чтож, отлично! ))
$str = '17 mar 2009';
function convert($str){
$pat_a = "/[0-9]{2}/";
$pat_b = "/[0-9]{4}/";
$mon = array(0 => 'jan', 1 => 'feb', 2 => 'mar', 3 => 'apr', 4 => 'may', 5 => 'jun', 6 => 'jul', 7 => 'aug', 8 => 'sep', 9 => 'oct', 10 => 'nov', 11 => 'dec');
$num = array(0 => '01', 1 => '02', 2 => '03', 3 => '04', 4 => '05', 5 => '06', 6 => '07', 7 => '08', 8 => '09', 9 => '10', 10 => '11', 11 => '12');
$str = explode(' ', $str);
for($i = 0; $i < 12; ++$i){
if((preg_match($pat_a, $str[0])) && ($mon[$i] === $str[1]) && (preg_match($pat_b, $str[2]))){
$date = $str[0].':'.$num[$i].':'.$str[2];
break;
}
}
if($date){
return $date;
}
else{
die('incorrect value');
}
}
$res = convert($str);
echo $res;
p.s.
"1. 3 части нужно выделять регом" как это сочетается с "что будет при $str = 'выпей_йаду'; ?" ?, а что если "аааааааааааааааааааааааааааааааа" , а что если . . . , а что если . . . ТС по моему конкретный формат сроки указал 17 июля 2009 -> 2009-07-17 иначе бы я вообще не взялся , а то там каой то анализатор текста уже получается