PHP конвертировать время в секундах (2 часа 12 минут или 2:12:00)

Привет, я пытаюсь преобразовать метку времени в секунды. В настоящее время отметка времени будет передаваться в двух формах и готовиться к любому. Однако я думаю, что я усложняю себе методы, которые я попробовал.

Так, например, вход

1 час 1 минута 1 секунда или же 2 часа 2 минуты 2 секунды <- для множественного числа

Я хочу, чтобы конечный результат был примером ниже, чтобы я мог затем преобразовать это число в несколько секунд:

1:01:01 или же 2:02:02

Я не знаю, в каком случае это будет, и это будет параметр, переданный через url, и вот что я пробовал до сих пор, но, как я уже сказал, он не отображается правильно:

$recent_time = htmlspecialchars($_GET["time"]);

$recent_time = preg_replace("/[^0-9,.]/", ":", $recent_time);
$recent_time = preg_replace("/(.)\\1+/", "$1", $recent_time);

echo $recent_time;

Итак, как вы можете видеть, я заменяю все буквы двоеточием и проверяю, что двоеточия не повторяются, поэтому вывод будет xx: xx: xx, однако иногда вывод не точен, вот как я бы перевел вывод в секунды:

$str_time = preg_replace("/^([\d]{1,2})\:([\d]{2})$/", "00:$1:$2", $recent_time);
sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds);
$time_seconds = $hours * 3600 + $minutes * 60 + $seconds;
$sum_total = $time_seconds + $old_time;

Проблема в том, что если это только min + sec, это не переводит это в секунды должным образом. так, например, время составляет 10 минут 13 секунд, он будет выводить 10:13: но он не преобразует его в секунды должным образом, потому что это не 00:10:13. Я пытался обрезать окончательный двоеточие, но он по-прежнему не может различить минуты / сек / часы

$recent_time = substr_replace($recent_time ,"",-1);

РЕДАКТИРОВАТЬ

$converted_time = date('H:i:s',strtotime('$recent_time', strtotime('midnight')));

1

Решение

используйте вместо этого функцию php strtotime

date('H:i:s',strtotime('1 hour 1 minute 1 second', strtotime('midnight'))); // 01:01:01
date('H:i:s',strtotime('2 hours 2 minutes 2 seconds', strtotime('midnight'))); // 02:02:02
date('H:i:s',strtotime('10 minutes 13 seconds', strtotime('midnight'))); // 00:10:13
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]