time-countdown.js 1.7 KB
// pages/zeroSell/components/timeCountDown/time-countdown.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    endTime: {//结束时间
      type: Number
    },
    formatTime: {
      type: Array
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },

  ready: function() {
    this.setData({
      formatTime: this.formatCountDown(this.properties.endTime)
    })
    this.formatTime()
  },
  /**
   * 组件的方法列表
   */
  methods: {
      formatTime:function() {
        let self = this
        setInterval(function() {
          self.setData({
            formatTime: self.formatCountDown(self.properties.endTime)
          })
        },1000)
      },
      formatCountDown:function formatCountDown(end) {
        if (end === 0) {
          return '00000000'
        }
        var timeInSecond = (end * 1000 - Date.now()) / 1000

        var day = 24 * 60 * 60
        var numberOfDay = Math.floor(timeInSecond / day)
        timeInSecond = timeInSecond - numberOfDay * day
        numberOfDay = Math.min(numberOfDay, 99)

        var hour = 60 * 60
        var numberOfHour = Math.floor(timeInSecond / hour)
        timeInSecond = timeInSecond - numberOfHour * hour

        var minute = 60
        var numberOfMinute = Math.floor(timeInSecond / minute)
        timeInSecond = timeInSecond - numberOfMinute * minute

        var numberOfSecond = parseInt(timeInSecond)

        var list = [numberOfDay, numberOfHour, numberOfMinute, numberOfSecond]

        for (var i = 0; i < list.length; i++) {
          var item = list[i]
          if (item < 10) {
            list[i] = '0' + item
          } else {
            list[i] = '' + item
          }
        }
        return list
      }
  }
})