JavaScript(时:分:秒)自由转成数字(时,分,秒)

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;//返回结果
}

调用函数

参数介绍
Value必填,时间文本
Type可空,转换类型, 可填Second(秒),Minute(分),Hour(时)。默认为秒(Second)
Cut可空,分隔符

返回结果

字段介绍
Second秒,整数(int),不存在返回0
Minute分,整数(int),不存在返回0
Hour时,整数(int),不存在返回0
Time转换后的结果,整数(int),失败返回0

示例:

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或者右键菜单-检查)
结束
若有问题,请在评论区或者私信留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

STHUDY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值