假设有一个100000000的时间戳
那么总共就有100000秒(100000000 / 1000)
100000%60 就是去除掉整分钟数 剩下的秒数 就是秒占40
100000/60 是整的分钟数 总共1666分钟
100000/60%60 是分钟数不到一个小时的部分 为46 占2760 = 4660
100000/3600 是整的小时数为27
100000/3600%24 是小时数不到一天的部分 这里为3 占10800 = 36060
100000/3600/24 是整数天的天数这里为1 占86400 = 13600*24
上面加起来为100000 = 86400 (剩余天数,注意不是总天数) + 10800 (剩余小时数)
+ 2760 (剩余分钟数) + 40 (剩余秒)
如果不放心可以按照上面算一下
// 倒计时
/**
*
* @param timstamp 时间戳的差值(结束时间的时间戳-当前时间的时间戳)
*/
export const deadLine = (timstamp) => {
const mf = Math.floor
const totalSecond = mf(timstamp/1000)
const second = totalSecond%60
const minut = mf(totalSecond/60)%60
const hour = mf(totalSecond/3600)%24
const day = mf(totalSecond/3600/24)
return {
day: padZero(day),
hour: padZero(hour),
minut: padZero(minut),
second: padZero(second)
}
}
// 不足两位数添加0,注意数据类型
export const padZero = (num) => {
return num < 10 ? '0'+num : num
}
使用
function foo(time) {
setTimeout(()=>{
if (time>0) {
foo(time-1000)
}
},1000)
}