基本上我有一个包含时间值的变量,格式为'00:04:13.67'。我需要一个简短的PHP函数来将其转换为秒。
我最终要做的是使用ffmpeg获取我在亚马逊云端存储的视频的持续时间,但ffmpeg以不需要的格式返回持续时间“hours:minutes:seconds.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];
答案 0 :(得分:2)
<?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
是你的时间字符串。这应该给你秒(浮动)。如果你愿意,可以将它包装在一个函数中。