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

秒:5250 分:87.5 时:1.4583333333333335 转成 01:27:30(01-27-30)
需要进行简单的计算
代码如下

function NumberToHMSTime(Time, Type = "Second", Length = 2, Cut = ":") {
    if (typeof (Time) != "number") {//判断是否是数字
        Time = 0;//不是归零
    }
    var Number_Pow = 0;//初始化次方变量
    if (Type == "Second") {//判断Tpye类型是否是秒
        Number_Pow = 2;//是秒次方为2
    } else if (Type == "Minute") {//判断Tpye类型是否是分钟
        Number_Pow = 1;//是分钟次方为1
    } else if (Type == "Hour") {//判断Tpye类型是否是小时
        Number_Pow = 0;//是小时次方为0
    }
    var Hour_Pow = Math.pow(60, Number_Pow);//计算小时次方
    var Minute_Pow = Math.pow(60, Number_Pow - 1);//计算分钟次方
    var Second_Pow = Math.pow(60, Number_Pow - 2);//计算秒
    var Hour = parseInt(Time / Hour_Pow); //获取总小时
    var Result = new Array;//初始化数组
    var Temp_Reduce = Time - (Hour * Hour_Pow);//减去小时
    var Temp_Minute = parseInt(Temp_Reduce / Minute_Pow);//获取分钟
    Temp_Reduce = Temp_Reduce - (Temp_Minute * Minute_Pow);//减去分钟
    var Temp_Second = parseInt(Temp_Reduce / Second_Pow);//获取秒
    var Minute_Value2 = String(Temp_Minute + (Hour * 60));//将小时变成分钟后相加
    var Hour_Value = String(Hour);//获取小时文本
    var Minute_Value = String(Temp_Minute);//获取分钟文本
    var Second_Value = String(Temp_Second);//获取秒
    //补充长度--开始
    for (let i = 0; i < Length; i++) {
        if (Hour_Value.length < Length) {//判断小时是否达到指定长度
            Hour_Value = "0" + Hour_Value;//用0补充小时的长度
        }
        if (Minute_Value.length < Length) {//判断分钟是否达到指定长度
            Minute_Value = "0" + Minute_Value;//用0补充分钟的长度
        }
        if (Second_Value.length < Length) {//判断秒是否达到指定长度
            Second_Value = "0" + Second_Value;//用0补充秒的长度
        }
    }
    //补充长度--结束
    Result["Hour"] = Hour_Value + Cut + Minute_Value + Cut + Second_Value;//记录以小时为最高单位的时间
    Result["Minute"] = Minute_Value2 + Cut + Second_Value;//记录以分钟为最高单位的时间
    return Result;//输出结果
}

调用函数

参数字段
Time必填,时间(数字)
Type可空,时间类型,默认为秒
Length可空,时间指定长度,默认为2
Cut可空,分隔符

返回结果

字段字段
Hour以小时为最高单位的时间,文本(String),不存在返回"00:00:00"
Minute以分钟为最高单位的时间 ,文本(String),不存在返回"00:00"

示例

function NumberToHMSTime(Time, Type = "Second", Length = 2, Cut = ":") {
    if (typeof (Time) != "number") {
        Time = 0;
    }
    if (Type == "Second") {
        Number_Pow = 2;
    } else if (Type == "Minute") {
        Number_Pow = 1;
    } else if (Type == "Hour") {
        Number_Pow = 0;
    }
    var Hour_Pow = Math.pow(60, Number_Pow);
    var Minute_Pow = Math.pow(60, Number_Pow - 1);
    var Second_Pow = Math.pow(60, Number_Pow - 2);
    var Hour = parseInt(Time / Hour_Pow);
    var Result = new Array;
    var Temp_Reduce = Time - (Hour * Hour_Pow);
    var Temp_Minute = parseInt(Temp_Reduce / Minute_Pow);
    Temp_Reduce = Temp_Reduce - (Temp_Minute * Minute_Pow);
    var Temp_Second = parseInt(Temp_Reduce / Second_Pow);
    var Minute_Value2 = String(Temp_Minute + (Hour * 60));
    var Hour_Value = String(Hour);
    var Minute_Value = String(Temp_Minute);
    var Second_Value = String(Temp_Second);

    for (let i = 0; i < Length; i++) {
        if (Hour_Value.length < Length) {
            Hour_Value = "0" + Hour_Value;
        }
        if (Minute_Value.length < Length) {
            Minute_Value = "0" + Minute_Value;
        }
        if (Second_Value.length < Length) {
            Second_Value = "0" + Second_Value;
        }
    }
    Result["Hour"] = Hour_Value + Cut + Minute_Value + Cut + Second_Value;
    Result["Minute"] = Minute_Value2 + Cut + Second_Value;
    return Result;
}
console.log(NumberToHMSTime(5250))
console.log(NumberToHMSTime(87.5, "Minute"))
console.log(NumberToHMSTime(1.4583333333333335, "Hour"))

打开浏览器控制台可以看到(按F12或者右键菜单-检查)
结果
若有问题,请在评论区或者私信留言

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

STHUDY

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

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

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

打赏作者

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

抵扣说明:

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

余额充值