计算时间差
项目中需要倒计时效果
data(){
return {
data:null,
timingDate:{
days:'',
hours:'',
minutes :'',
seconds :'',
},
//全局定时器对象
//作用:页面跳转或其他需要时用于关闭定时器
serverTimeOut:null
}
}
methods:{
//计算时间差
getTimingDate(endDate) {
//endDate作为一个变量传进来
//如果时间格式是正确的,那下面这一步转化时间格式就可以不用了
var dateEnd = new Date(endDate.replace(/-/g, "/")); //将-转化为/,使用new Date
var dateBegin = new Date(); //获取当前时间
var dateDiff = dateEnd.getTime() - dateBegin.getTime(); //时间差的毫秒数
var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
var leave1 = dateDiff % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000)); //计算出小时数
//计算相差分钟数
var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000)); //计算相差分钟数
//计算相差秒数
var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000);
this.timingDate.days = dayDiff < 10 ? "0" + dayDiff : dayDiff
this.timingDate.hours = hours < 10 ? "0" + hours : hours;
this.timingDate.minutes = minutes < 10 ? "0" + minutes : minutes;
this.timingDate.seconds = seconds < 10 ? "0" + seconds : seconds;
},
getData() {
let that = this;
matchModel.getData().then(res => {
if (res.code != 0) {
return consolt.log('error')
}
this.data = res.data;
this.getTimingDate(this.data.voteEndTime);
this.serverTimeOut = setInterval(function () {
that.getTimingDate(res.data.voteEndTime);
}, 1000);
})
},
}