LINUX.ORG.RU

Что должно быть на выходе ?

joy4eg ★★★★★ ()
Ответ на: комментарий от joy4eg

данные , чтобы удобно было перевести всё в секунды и сохранить в базе

samedovr ()

$arr=array(); $week_match="(?P<week>\d+)\s*н(?:еделя)?"; $hour_match="(?P<hour>\d+)\s*ч(?:аса)?"; $minutes_match="(?P<min>\d+)\s*м(?:инут)?";

$match=implode('\s+',array( $week_match,$hour_match,$minutes_match)); $week=0; $hour=0; $min=0; if(preg_match(«/$match/»,$a,$arr);){ $week=(int)$arr['week']; $hour=(int)$arr['hour']; $min=(int)$arr['min']; }

Jaberwock ★★★ ()
Ответ на: комментарий от Jaberwock

«1 неделя 2 часа 30 минут» или «1н 2 ч 30м» Должно распарсить

«1 неделя 5 часов 30 минут» Не распарсит

Jaberwock ★★★ ()
Ответ на: комментарий от Jaberwock

может от всех слов взять только первую букву и тогда с окончаниями проблем не станет?

samedovr ()

сделал так

	
$en = array(
'week',
'week',
'week',
'week',
'day',
'day',
'day',
'hour',
'hour',
'hour',
'minute', 
'minute', 
'minute',  
'minute',  
'week',
'day',
'hour',
'minute'
);
 
$ru = array(
'неделя',
'недель',
'недели',
'нед',
'день',
'дня',
'дни',
'часа',
'час',
'часов',
'минута',
'минут',
'минуты',
'мин',
'н',
'д',
'ч',
'м' 
);
 $date = '1 неделя 1 день , 2 ч, 30 минут';
 
echo $date = str_replace($ru,$en,$date), "\n";
$time = strtotime($date)-time();
  echo $time, "\n";

samedovr ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.