这是后台接口返回的秒数,将下面红框的字段转为天、时、分、秒
实现思路:封装函数,多次调用,先将Sting转为int 类型,判断参数是否大于一天的秒数、大于一个小时的秒数、一分钟的秒数,计算之后拼接为字符串返回,(看注释提示)
//将秒数转换为天时分秒格式
function setSeconds(value) {
var result = ""
var sencond = parseInt(value)
//3600秒等于60分钟等于1小时
if(sencond > 3600 * 24){ //表示大于一天
var day = sencond / (3600 * 24);
sencond = sencond % (3600 * 24); //求天数整除外剩余的秒数
var hour = sencond / 3600; //1小时==60分钟==3600秒,所以剩余的秒数÷3600= 得到几个小时数
result = parseInt(day)+"天"+parseInt(hour)+"时";
} else if(sencond > 3600){ //表示大于一个小时
var hour = sencond / 3600;
var minute = sencond % 3600 / 60; //求小时数整除外剩余的秒数, 秒数÷60秒 = 得到几分钟
result = parseInt(hour)+"时"+parseInt(minute)+"分";
} else if(sencond > 60){ //表示大于一分钟
var minute = sencond / 60;
var sec = sencond % 60; //求分钟数整除外剩余的秒数
result = parseInt(minute)+"分"+parseInt(sec)+"秒";
} else { //不大于一天、不大于一个小时、也不大于一分钟,那就是秒数
result = ""+parseInt(sencond)+"秒";
}
return result
}
这里拿到数据接口后进行循环遍历,调用上面的函数进行计算并且循环赋值
newRptdatas.suppDelayTable.map(v=>{
v.prodOverDelaySec = setSeconds(v.prodOverDelaySec)
v.storaOverDelaySec = setSeconds(v.storaOverDelaySec)
})
计算后的效果图