vue 小程序 时间倒计时处理(拿出来就可以直接用)

538 阅读1分钟
html
<span>{{leave_time[0]}}</span>
<span>{{leave_time[1]}}</span>
<span>{{leave_time[2]}}</span>

<script>
import { curtTime } from "../common/ulist"; //注意路径
export default { 
    data() {
       return { 
           leave_time: "",    
       }; 
    },  
created() { 
   this.dataD();  
}, 
 mounted() {}, 
 methods: { 
   dataD() { 
     var add = "2020-09-14T16:00:00";
      setInterval(()=> { 
         curtTime(add, null, (res) => { 
             this.leave_time = res; 
             console.log(this.leave_time, 1);  
        })     
     },1000); 
    }, 
 },
};
</script>

ulist里面的封装方法

// 计算剩余时间返回倒计时
export async function curtTime(CreateDate, EffectiveTime, callback) {
   // 前三行兼容ios端8小时时差问题
    CreateDate= CreateDate.slice(0,19)
    CreateDate= CreateDate.replace(/-/g, "/") 
    CreateDate= CreateDate.replace(/T/g, " ")    
let Effective = EffectiveTime ? EffectiveTime * 3600000 : 0,
endTime = Date.parse(new Date(CreateDate)) + Effective 
if (endTime === "") {
        return    
}    
function checkTime(i) { //将0-9的数字前面加上0,例1变为01 
    if (i < 10) {
          i = "0" + i;        
}  
     return i;   
}    
let countDown = Date.parse(new Date(endTime)),
        nowTime = Date.parse(new Date())
if (countDown < nowTime) { 
     callback('')
     return    
}    
var leftTime = (countDown) - (new Date()); //计算剩余的毫秒数
     var days = parseInt(leftTime / 1000 / 60 / 60 / 24, 10); //计算剩余的天数
     var hours = parseInt(leftTime / 1000 / 60 / 60 % 24, 10); //计算剩余的小时
     var minutes = parseInt(leftTime / 1000 / 60 % 60, 10); //计算剩余的分钟
     var seconds = parseInt(leftTime / 1000 % 60, 10); //计算剩余的秒数
     // days = checkTime(days); 
   hours = checkTime(hours)
    minutes = checkTime(minutes);
    seconds = checkTime(seconds);
    // let nowTime = (days == 0 ? '' : (days * 24)) + hours + ":" + minutes + ":" + seconds 
   // let hour = days == 0 ? hours : (days * 24) + hours  
    let arr = days == 0 ? [hours, minutes, seconds] : [hours, minutes, seconds, days] 
   callback(arr)    
   if (hours == '00' && minutes == '00' && seconds == '00') { 
       callback('')   
 }
}