将播放时间格式PT转换为M:SS

时间:2019-03-19 21:15:38

标签: php time

如何将PT4M4S格式从YouTube API格式转换为可见格式,例如4:04
...,也许还有兴趣,PT1H4M4S1:04:04都以四个开头的零开头。

2 个答案:

答案 0 :(得分:0)

这应该对您有用。

免责声明:此功能尚未经过测试,因此不知道是否可行

<?php 
    $str = 'PT1H4M4S'; 
    $str = substr($str, 2); //Returns 4M4S

    $timeArray = str_split($string, 2); //Returns { '4M', '4S' }

    $formattedTime = '';

    foreach ($timeArray as $time) {
        switch (substr($time, 0)) //Looking at first value
        {
            case 'H':
                $formattedTime .= substr($time, 1); //Returns 4
                break;
            case 'M':
                $formattedTime .= str_pad(substr($time, 1), 2, '0', STR_PAD_LEFT); //Returns 04
                break;
            case 'S':
                $formattedTime .= str_pad(substr($time, 1), 2, '0', STR_PAD_LEFT); //Returns 04
                break;
        }

        $formattedTime .= ':';
    }

    $formattedTime .= substr($time, -1); //Removes last ':'

    echo $formattedTime; 
?> 

答案 1 :(得分:0)

  1. 使用以下(redux-thunk)函数将持续时间转换为秒:

    function ISO8601ToSeconds($ISO8601) {

        $interval = new \DateInterval($ISO8601);
    
        return 
        ($interval->d * 24 * 60 * 60) +
        ($interval->h * 60 * 60) +
        ($interval->i * 60) +
        ($interval->s);
    }
    
  2. 以秒为单位设置时间格式以适合您的需求:

    gmdate("H:i:s", ISO8601ToSeconds('PT4M4S'));