Я хочу превратить вывод, например, в 12 ч 34 м 45 с в 12: 34: 45
также возможно, если один из них будет возвращен пустым - он будет игнорироваться.
Таким образом, 34m 45s должны быть 00:34:45, и, конечно, однозначные цифры должны быть возможны, например, 1h 4m 1s, и комбинация из одно- и двузначных цифр, например, 12h 4m 12s и т. Д.
Может кто-нибудь помочь, пожалуйста?
Это фактический код
$van = $_POST['gespreksduur_van'];
$tot = $_POST['gespreksduur_tot'];
$regex = '/(\d\d?h ?)?(\d\d?m ?)?(\d\d?s)?/';
if(preg_match($regex, $van, $match) AND preg_match($regex, $tot, $matches))
{
for ($n = 1; $n <= 3; ++$n) { if (!array_key_exists($n, $match)) $match[$n] = 0; }
for ($i = 1; $i <= 3; ++$i) { if (!array_key_exists($i, $matches)) $matches[$i] = 0; }
$van = printf("%02d:%02d:%02d", $matches[1], $matches[2], $matches[3]);
$tot = printf("%02d:%02d:%02d", $match[1], $match[2], $match[3]);
print($van);
print($tot);
$data['gespreksduurvan'] = htmlspecialchars($van);
$data['gespreksduurtot'] = htmlspecialchars($tot);
$smarty->assign('gsv',$data['gespreksduurvan']);
$smarty->assign('gst',$data['gespreksduurtot']);
}