假设有一个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) }