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('')
}
}