Как преобразовать время в формате «00: 04: 13,67» в секунды? - PullRequest
0 голосов
/ 06 октября 2010

В основном у меня есть переменная, которая содержит значение времени, в этом формате '00: 04: 13.67 '.Мне нужна короткая и простая функция php, чтобы преобразовать это в секунды.

То, что я в конечном итоге пытаюсь сделать, это получить продолжительность видео, которое я сохранил на фронте облака амазонки, используя ffmpeg, но ffmpeg возвращает продолжительность в нежелательном формате «часы: минуты: секунды.decimals», мне нужно времяв секундах.

вот мой код, если какой-либо из них имеет более простое или понятное решение, я был бы очень признателен

$videofile="http://123abc.cloudfront.net/test.flv";
ob_start();
passthru("/usr/bin/ffmpeg -i \"{$videofile}\" 2>&1");
$duration = ob_get_contents();
ob_end_clean();

$duration=preg_match('/Duration: (.*?),/', $duration, $matches, PREG_OFFSET_CAPTURE, 3);
//TEST ECHO
echo $matches[1][0];

1 Ответ

2 голосов
/ 06 октября 2010
<?php
$hours = (int) substr($timeStr, 0, 2);
$mins = (int) substr($timeStr, 3, 2) + $hours * 60;
$secs = (int) substr($timeStr, 6, 2) + $mins * 60;
$secs += ((int) substr($timeStr, 9, 2)) / 100;
?>

$timeStr - ваша временная строка. Это должно дать вам секунды (как поплавок). Оберните это в функцию, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...