我写的一个小功能来搜索YouTube视频与YouTube API V3
如何使用moment.js
视频时长的像PT2M54S
格式来格式化的YouTube API视频的时间,我想将它转化as 00:02:54
使用moment.js
有没有解决方法?
我写的一个小功能来搜索YouTube视频与YouTube API V3
如何使用moment.js
视频时长的像PT2M54S
格式来格式化的YouTube API视频的时间,我想将它转化as 00:02:54
使用moment.js
有没有解决方法?
以下方法以秒为单位返回持续时间。所以,你可以简单地使用,在moment.js
function getDurationInSecond(youtubeDuration)
{
var re=/pt([0-9]+)M([0-9]+)S/gi,
rex = new RegExp(re),
du = rex.exec(youtubeDuration);
if (du.length<1)
return 0;
var s=0;
s+= du.length >1 && du[1]? parseInt(du[1], 10) * 60 :0; // adding minute
s+= du.length >2 && du[2]? parseInt(du[1], 10) :0; //
return s;
}
var time='PT2M45S';
console.log(getDurationInSecond(time));
您可以创建一个moment.duration
对象,然后使用moment-duration-format插件格式化。该库为持续时间添加了format
方法,并具有trim
选项,可让您以所询问的格式获取输出。
一个示例代码如下:
var dur = moment.duration('PT2M54S');
console.log(dur.format('HH:mm:ss', {trim: false})); // 00:02:54
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>
我重新创建iOS版YouTube应用,并使用moment + moment-duration-format在视频的右下角创建的运行时间(例如4:05)。
如果你感兴趣,我提供这个效用函数:
import moment from 'moment';
import 'moment-duration-format';
export default (duration) => moment
.duration(duration)
.format('h:mm:ss')
.padStart(4, '0:0');