介绍
01:27:30(01-27-30) 转成 秒:5250 分:87.5 时:1.4583333333333335
方法很简单,处理01:27:30用字符串分割就行了
转成数字用乘除法算一下就行了
代码
function HMSTimeToNumber(Value , Type = "Second", Cut = ":") { var Temp = Value;//复制一份时间,用于获取分隔符总数 var Cut_Number = 0;//分隔符存在总数 //统计分隔符数量---开始 while (Temp.indexOf(Cut) != -1) {//判断分隔符是否存在 Temp = Temp.replace(Cut, "") Cut_Number++; } //统计分隔符数量---结束 var Temp0 = Value;//复制一份时间,用于分割 var Time = new Array([]);//创建时间数组 var Cut_Time_Temp = 0;//临时变量,获取分隔符位置 var NumberTime = 0;//记录数字时间 var Number_Pow = 0;//60的次方数变量 //分割时间---开始 for (let i = 0; i <= Cut_Number; i++) { Cut_Time_Temp = Temp0.lastIndexOf(Cut);//从最后获取分隔符位置 var TimeTemp = Temp0.substring(Cut_Time_Temp + 1);//截取分隔符后面的字符串 Time[i] = TimeTemp;//记录时间 if(Type == "Second"){//判断转整数类型 Number_Pow = i;//转为秒 }else if(Type == "Minute"){ Number_Pow = i - 1;//转为分钟则次方减1 }else if(Type == "Hour"){ Number_Pow = i - 2;//转为小时则次方减2 } NumberTime = NumberTime + (Number(TimeTemp) * Math.pow(60, Number_Pow));//进行计算 Temp0 = Temp0.substring(0, Cut_Time_Temp);//去掉末尾截取的字符串 } //分割时间---结束 var Result = new Array([]);//结果数组 Result["Second"] = Number(Time[0]);//保存秒 if(Time[1] !== undefined){//判断是否是时间存在 Result["Minute"] = Number(Time[1]);//保存分 }else { Result["Minute"] = 0;//不是则输出0 } if(Time[2] !== undefined){//判断是否是时间存在 Result["Hour"] = Number(Time[2]);//保存时 }else { Result["Hour"] = 0;//不是则输出0 } Result["Time"] = NumberTime;//保存转换后的数字 return Result;//返回结果 }
返回结果是数组
调用函数
参数 | 介绍 |
---|---|
Lyric_content | 必填,歌词 |
End | 可空,歌词结束标志,默认为End |
Cut | 可空,要删除的字符,默认为/r/n |
返回结果
字段 | 介绍 |
---|---|
Size | 歌词长度,整数(int),失败返回0 |
LineNumber | 歌词总行数,整数(int),失败返回0 |
Line | 歌词行内容,字符串(string),失败返回空 |
StartTime | 歌词每行开始时间,字符串(string) ,失败返回空 |
LineValue | 歌词每行文本,字符串(string) ,失败返回空 |
EndTime | 歌词每行结束时间,字符串(string) ,失败返回空 |
示例
function HMSTimeToNumber(Value , Type = "Second", Cut = ":") { var Temp = Value;//复制一份时间,用于获取分隔符总数 var Cut_Number = 0;//分隔符存在总数 //统计分隔符数量---开始 while (Temp.indexOf(Cut) != -1) {//判断分隔符是否存在 Temp = Temp.replace(Cut, "") Cut_Number++; } //统计分隔符数量---结束 var Temp0 = Value;//复制一份时间,用于分割 var Time = new Array([]);//创建时间数组 var Cut_Time_Temp = 0;//临时变量,获取分隔符位置 var NumberTime = 0;//记录数字时间 var Number_Pow = 0;//60的次方数变量 //分割时间---开始 for (let i = 0; i <= Cut_Number; i++) { Cut_Time_Temp = Temp0.lastIndexOf(Cut);//从最后获取分隔符位置 var TimeTemp = Temp0.substring(Cut_Time_Temp + 1);//截取分隔符后面的字符串 Time[i] = TimeTemp;//记录时间 if(Type == "Second"){//判断转整数类型 Number_Pow = i;//转为秒 }else if(Type == "Minute"){ Number_Pow = i - 1;//转为分钟则次方减1 }else if(Type == "Hour"){ Number_Pow = i - 2;//转为小时则次方减2 } NumberTime = NumberTime + (Number(TimeTemp) * Math.pow(60, Number_Pow));//进行计算 Temp0 = Temp0.substring(0, Cut_Time_Temp);//去掉末尾截取的字符串 } //分割时间---结束 var Result = new Array([]);//结果数组 Result["Second"] = Number(Time[0]);//保存秒 if(Time[1] !== undefined){//判断是否是时间存在 Result["Minute"] = Number(Time[1]);//保存分 }else { Result["Minute"] = 0;//不是则输出0 } if(Time[2] !== undefined){//判断是否是时间存在 Result["Hour"] = Number(Time[2]);//保存时 }else { Result["Hour"] = 0;//不是则输出0 } Result["Time"] = NumberTime;//保存转换后的数字 return Result;//返回结果 } console.log(HMSTimeToNumber("01:27:30")) console.log(HMSTimeToNumber("01:27:30","Minute")) console.log(HMSTimeToNumber("01:27:30","Hour")) console.log(HMSTimeToNumber("01-27-30","Second","-")) console.log(HMSTimeToNumber("3600"))
打开浏览器控制台可以看到(按F12或者右键菜单-检查)
希望我写的代码能帮助到大家,别忘记留言哦~