将youtube持续时间转换为秒

时间:2016-07-03 03:26:29

标签: php youtube youtube-api

目前,当您获得youtube持续时间时,您会获得类似PT3M10S的内容。

以下代码将其更改为3:10。但是我希望只获得SECONDS,因此190将成为输出。

$duration = str_replace(array("PT","M","S"), array("",":",""),$duration);

4 个答案:

答案 0 :(得分:2)

您可以尝试使用正则表达式来获取值,然后从那里获取总秒数。类似的东西:

$duration="PT3M10S";
$pattern='/PT(\d+)M(\d+)S/';
preg_match($pattern,$duration,$matches);
$seconds=$matches[1]*60+$matches[2];

模式将分钟放入第一组,将秒放入下一组。 $ matches将在调用preg_match()后包含匹配的组。 您需要获得组1和组2,因为匹配中的组0是完全匹配的文本。在这种情况下“PT3M10S”。

答案 1 :(得分:1)

here

    $youtube_duration = $vinfo['duration'];
    $interval = new DateInterval(youtube_duration);
    $seconds = $interval->h * 3600 + $interval->i * 60 + $interval->s;

答案 2 :(得分:0)

function covtime($youtube_time) {
    preg_match_all('/(\d+)/', $youtube_time, $parts);
    $h = preg_match('/H/', $youtube_time);
    $m = preg_match('/M/', $youtube_time);
    $s = preg_match('/S/', $youtube_time);
    if ($h && $m && $s) {
        $hours = $parts[0][0];
        $minutes = $parts[0][1];
        $seconds = $parts[0][2];
        if ($minutes < 10) {
            $minutes = '0' . $parts[0][1];
        }
        if ($seconds < 10) {
            $seconds = '0' . $parts[0][2];
        }
        echo $hours . ':' . $minutes . ':' . $seconds;
    } else if ($h && $m) {
        $hours = $parts[0][0];
        $minutes = $parts[0][1];
        $seconds = '00';
        if ($minutes < 10) {
            $minutes = '0' . $parts[0][1];
        }
        echo $hours . ':' . $minutes . ':' . $seconds;
    } else if ($m && $s) {
        $minutes = $parts[0][0];
        $seconds = $parts[0][1];
        if ($seconds < 10) {
            $seconds = '0' . $parts[0][1];
        }
        echo $minutes . ':' . $seconds;
    } else if ($h && $s) {
        $hours = $parts[0][0];
        $minutes = '00';
        $seconds = $parts[0][1];
        if ($seconds < 10) {
            $seconds = '0' . $parts[0][1];
        }
        echo $hours . ':' . $minutes . ':' . $seconds;
    } else if ($h) {
        $hours = $parts[0][0];
        $minutes = '00';
        $seconds = '00';
        echo $hours . ':' . $minutes . ':' . $seconds;
    } else if ($m) {
        $minutes = $parts[0][0];
        $seconds = '00';
        echo $minutes . ':' . $seconds;
    } else if ($s) {
        $minutes = '0';
        $seconds = $parts[0][0];
        if ($seconds < 10) {
            $seconds = '0' . $parts[0][0];
        }
        echo $minutes . ':' . $seconds;
    }
}
echo covtime(PT1H2M3S);

答案 3 :(得分:0)

PageRequestParameter