
<template>
  <p>{{time}}</p>
</template>
 
 
 
<script>
  export default{
    data () {
      return {
        time : '',
        flag : false
      }
    },
    mounted () {
      let time = setInterval(()=>{
        if(this.flag == true){
          clearInterval(time)
        }
        this.timeDown()
      },500)
    },
    props : {
      endTime : {
        type : String
      }
    },
	destroyed() {
		clearInterval(time)
	},
    methods : {
      timeDown () {
        const endTime = new Date(this.endTime)
        const nowTime = new Date();
        let leftTime = parseInt((endTime.getTime()-nowTime.getTime())/1000)
		if(leftTime>0){
			let d = parseInt(leftTime/(24*60*60))
			let h = this.formate(parseInt(leftTime/(60*60)%24))
			let m = this.formate(parseInt(leftTime/60%60))
			let s = this.formate(parseInt(leftTime%60))
			if(leftTime <= 0){
			  this.flag = true
			  this.$emit('timeend')
			}
			this.time = `${d}天${h}小时${m}分${s}秒`     // 需要修改时间样式的话 ，比如需要什么30分钟倒计时，就只保留分和秒
		}else{
			this.time = "时间已过"
			this.$emit('timeend')
		}
      },
      formate (time) {
        if(time>=10){
          return time
        }else{
          return `0${time}`
        }
      }
    }
  }
</script>
 
<style scoped>
</style>
