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