js怎么做倒计时,其实很简单。话不多说,直接上菜


使用 new Date() 获取当前时间, Date.parse()方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数。然后,求两个时间差。这里也可以使用 getTime() 方法获取现在时和结束时距离的毫秒数。
把时间差转换为天数、小时数、分钟数和秒数显示。主要是用%取模运算。得到距离结束时间的毫秒数(剩余毫秒数),除以 1000 得到剩余秒数,再除以 60 得到剩余分钟数,再除以 60 得到剩余小时数。除以 24 得到剩余天数。剩余秒数 diff/1000 模 60 得到秒数,剩余分钟。数。diff/(1000 * 60) 模 60 得到分钟数,剩余小时数 diff/(1000 * 60 * 60) 模 24 得到小时数。

getPart(endTime) {
    //获取当前时间戳并换算为秒做单位
    const current = Date.parse(new Date()) / 1000
    //时间戳相差多少秒
    let diff = endTime - current
    //判断是否过时
    if (diff > 0) {            
      let d = Math.floor(diff / (3600 * 24))        //获取天数
      let h = Math.floor((diff % (3600 * 24)) / (60 * 60))        //获取时
      let m = Math.floor(((diff % (3600 * 24)) % (60 * 60)) / 60)        //获取分
      let s = Math.floor(diff % 60)        //获取秒
      d = d < 10? "0" + d : d;
      h = h < 10? "0" + h : h;
      m = m < 10? "0" + m : m;
      s = s < 10? "0" + s : s;
      let _diffData = [d, h, m, s]
    } else {
      let _diffData = ["00", "00", "00","00"];
    return _diffData;
      
setInterval(getPart(), 1000); 

对倒计时进行封装,可以使用setInterval()方法对函数调用就可以实现倒计时了。

如果想停掉倒计时则用clearInterval()方法就可以了。

描述如有错误,欢迎指正!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐