javascript倒计时功能

假设有一个100000000的时间戳
那么总共就有100000秒(100000000 / 1000)
100000%60 就是去除掉整分钟数 剩下的秒数 就是秒占40
100000/60 是整的分钟数 总共1666分钟
100000/60%60 是分钟数不到一个小时的部分 为46 占2760 = 4660
100000/3600 是整的小时数为27
100000/3600%24 是小时数不到一天的部分 这里为3 占10800 = 3
6060
100000/3600/24 是整数天的天数这里为1 占86400 = 1
3600*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)
}
上一篇:最短距离问题 弗洛伊德与迪杰斯特拉Java实现


下一篇:[差分]It Rains Again