如何将PT4M4S
格式从YouTube API格式转换为可见格式,例如4:04
...,也许还有兴趣,PT1H4M4S
和1:04:04
都以四个开头的零开头。
答案 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)
使用以下(redux-thunk)函数将持续时间转换为秒:
function ISO8601ToSeconds($ISO8601) {
$interval = new \DateInterval($ISO8601);
return
($interval->d * 24 * 60 * 60) +
($interval->h * 60 * 60) +
($interval->i * 60) +
($interval->s);
}
以秒为单位设置时间格式以适合您的需求:
gmdate("H:i:s", ISO8601ToSeconds('PT4M4S'));