Есть много строк с нестандартным временем типа: 89:21 - минуты и секунды:
Текст;Текст;Текст;Текст;Текст;89:21;Текст;
Текст;Текст;Текст;Текст;Текст;58:01;Текст;
Текст;Текст;Текст;Текст;Текст;109:21;Текст; и.т.д.
Можно ли как-то переконвертировать те строки, где минут больше 60, в формат вида: 01:29:21 ?
Единственное, что приходит в голову, это с помощью
preg_match('/;\d\d:\d\d:\d\d/', $html, $t);
Вытаскивать строки, а вот что потом делать не могу сообразить.
1. Ant234 - 01 Мая, 2017 - 18:00:05 - перейти к сообщению
2. Ant234 - 02 Мая, 2017 - 05:09:30 - перейти к сообщению
Сделал так:
$html='Текст;Текст;Текст;Текст;Текст;89:21;Текст;';
function minuti_v_chasi($minuti){ // функция перевода времени из минут в часы
return sprintf('%02d:%02d', floor($minuti/60), $minuti%60);
}
$tmp = preg_replace_callback('/;(\d\d):/', function($matches)
{
$matches= str_replace(":", "", $matches);
$matches= str_replace(";", "", $matches);
return ";" . minuti_v_chasi($matches[0]) . ":";
},$html);
$tmp = str_replace(';:', ";", $tmp);
echo $tmp;
$html='Текст;Текст;Текст;Текст;Текст;89:21;Текст;';
function minuti_v_chasi($minuti){ // функция перевода времени из минут в часы
return sprintf('%02d:%02d', floor($minuti/60), $minuti%60);
}
$tmp = preg_replace_callback('/;(\d\d):/', function($matches)
{
$matches= str_replace(":", "", $matches);
$matches= str_replace(";", "", $matches);
return ";" . minuti_v_chasi($matches[0]) . ":";
},$html);
$tmp = str_replace(';:', ";", $tmp);
echo $tmp;
3. Строитель - 02 Мая, 2017 - 11:52:27 - перейти к сообщению
Ant234, у вас получилось много лишнего
Спойлер (Отобразить)