倒计时 获取本周周六或者周日10点
在utils里面封装一个方法 tims.js
function countdown() {
let _date = new Date();
// 获取当天的时间在这里插入代码片
let _nowTime = _date.getTime();
// 获取当天星期几
let _week = _date.getDay();
// 设置一天的时长
let _dayLongTime = 24 * 60 * 60 * 1000;
// 获取周六周日距离现在还有多少毫秒
let Sunday = _nowTime + (7 - _week) * _dayLongTime;
let Saturday = _nowTime + (6 - _week) * _dayLongTime;
// 将毫秒数转为date对象
Sunday = new Date(Sunday);
const Y = Sunday.getFullYear() + '-';
const M = (Sunday.getMonth() + 1 < 10 ? '0' + (Sunday.getMonth() + 1) : Sunday.getMonth() + 1) + '-';
const D = (Sunday.getDate() < 10 ? '0' + Sunday.getDate() : Sunday.getDate()) + ' ';
const dateString = Y + M + D + '10:00:00';
// 定义结束时间戳
const end = Date.parse(new Date`在这里插入代码片`(dateString));
// console.log(end);
// 定义当前时间戳
const now = Date.parse(new Date());
// 做判断当倒计时结束时都为0
if (now >= end) {
this.day = 0;
this.hr = 0;
this.min = 0;
this.sec = 0;
return;
}
// 用结束时间减去当前时间获得倒计时时间戳
const msec = end - now;
let day = parseInt(msec / 1000 / 60 / 60 / 24); //算出天数
let hr = parseInt((msec / 1000 / 60 / 60) % 24); //算出小时数
let min = parseInt((msec / 1000 / 60) % 60); //算出分钟数
let sec = parseInt((msec / 1000) % 60); //算出秒数
//给数据赋值
this.day = day;
this.hr = hr > 9 ? hr : "0" + hr;
this.min = min > 9 ? min : "0" + min;
this.sec = sec > 9 ? sec : "0" + sec;
//定义this指向
const that = this;
// 使用定时器 然后使用递归 让每一次函数能调用自己达到倒计时效果
setTimeout(function () {
that.countdown();
}, 1000);
}
export default countdown