How to turn time in format HH:MM:SS
into a flat seconds number?
P.S. Time could be sometimes in format MM:SS
only.
Advertisement
Answer
No need to explode
anything:
$str_time = "23:12:95"; $str_time = preg_replace("/^([d]{1,2}):([d]{2})$/", "00:$1:$2", $str_time); sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds); $time_seconds = $hours * 3600 + $minutes * 60 + $seconds;
And if you don’t want to use regular expressions:
$str_time = "2:50"; sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds); $time_seconds = isset($seconds) ? $hours * 3600 + $minutes * 60 + $seconds : $hours * 60 + $minutes;