小程序秒杀倒计时

const time = {
  start: 1534212040000,    //倒计时开始时间
  end: 1534248000000       //倒计时结束时间
}

page({
  onload: function() {
    // 倒计时活动开始
    let tm = this.getnow();
    if (tm < time.start) { //活动未开始
      console.log('活动未开始')
      let cd1 = setInterval(() => {
        let watch1 = this.countDown(time);
        if (watch1 == '00:00:00') {
          clearInterval(cd1)
          this.setData({
            clock: ''
          })
        } else if (watch1 == 'noStart') {
          this.setData({
            clock: ''
          })
        } else {
          this.setData({
            clock: watch1
          })
        }
      }, 1000)
    } else if (tm > time.end) { //活动结束
      console.log('活动结束')
      this.setData({
        clock: ''
      })
    } else { //活动正在进行
      console.log('活动正在进行')
      let cd2 = setInterval(() => {
        let watch = this.countDown(time);
        if (watch == '00:00:00') {
          clearInterval(cd2)
          this.setData({
            clock: ''
          })
        } else {
          this.setData({
            clock: watch
          })
        }
      }, 1000)
    }
    // 倒计时活动结束
  }
  getnow: function() { //获取当前时间戳
    let timenow = new Date();
    let timestamp = timenow.getTime();
    return timestamp;
  },
  countDown: function(time) { //倒计时时间计算
    let nt = this.getnow();
    if (time.end <= nt) {
      return '00:00:00'
    } else if (time.start > nt) {
      return 'noStart'
    }
    let h = Math.floor((time.end - nt) / 3600000)
    if (h < 10) {
      h = '0' + h
    }
    let m = Math.floor(((time.end - nt) % 3600000) / 60000)
    if (m < 10) {
      m = '0' + m
    }
    let s = Math.floor(((time.end - nt) % 60000) / 1000)
    if (s < 10) {
      s = '0' + s
    }
    if (Number(h) < 24) {
      return `${h}:${m}:${s}`
    }
  }



})