起初是因为一些网站的视频没找着时间戳,但是显示了视频的时长时分秒,为了做过滤处理,就想到了获取到视频上显示的的时分秒,进行截取,然后根据秒数判断该视频的时长进行筛选
/**
* 分割时分秒字符串
* @param time
* @returns {{s: number, h: number, m: number}|{s: number, m: number}}
*/
function splitTimeHMS(time) {
const split = time.split(":");
if (split.length === 2) {//说明时长是在60分钟以内
const tempM = parseInt(split[0]);//分
const tempS = parseInt(split[1]);//秒
return {
m: tempM,
s: tempS
};
} else {//说明时长是在一小时以上的
const tempH = parseInt(split[0]);//时
const tempM = parseInt(split[0]);//分
const tempS = parseInt(split[1]);//秒
return {
h: tempH,
m: tempM,
s: tempS
};
}
}
/**
* 根据字符串的时分秒转成秒
* @param {String} time 时分秒字符串
* @returns {Number} 总秒
*/
function getTimeTotalSeconds(time) {
const demoTime = splitTimeHMS(time);
if (demoTime.h === undefined) {//表示时长没有时
if (demoTime.m === 0) {//时长低于60秒
return demoTime.s;
}
return demoTime.m * 60 + demoTime.s;//求出剩下的分和秒的总秒
}
if (demoTime.h === 0) {//说明时长仅仅只有60分钟以内
if (demoTime.m === 0) {//时长低于60秒
return demoTime.s;
}
return demoTime.m * 60 + demoTime.s;//求出剩下的分和秒的总秒
}
//一小时有60分钟,一分钟有60秒,所以,
return demoTime.h * 60 * 60 + demoTime.s;
}
//使用例子
console.log(getTimeTotalSeconds("5:10:00"));//获取时长为小时的秒数
console.log(getTimeTotalSeconds("6:00"));//获取时长为分钟的秒数
console.log(getTimeTotalSeconds("0:50"));//获取时长为秒的秒数