背景:业务方要求每天 8:30-18:00 之间每半小时刷新一次接口数据
安装 moment.js 插件,如下:
npm install moment --save
页面引入 moment.js ,如下:
import moment from "moment"
1、先写一个定时器检测当前的时间
methods:{
// 每天8:30-18:00之间每半小时刷新一次呗
upTime(){
setInterval(() => {
this.newTime = moment().format('HH:mm:ss')
// 每天8:30开启定时器
if(this.newTime === '08:30:00'){
this.getList(); //8:30:00 的时候先调用一次,因为下面定时器是半小时执行一次,也就是说第一次执行是9:00:00
this.upData() // 调用每半小时执行一次的定时器
}
// 每天18:00取消定时器
if(this.newTime === '18:00:00'){
clearInterval(this.timer);
this.timer = null;
}
}, 1000);
},
}
2、写一个每半小时执行一次的定时器,每半小时执行一次你需要的逻辑,如下:
methods:{
upData(){
this.timer = setInterval(() => {
// console.log('开始调用接口');
this.getList(); // 我这里是调用接口,可以根据自己的需求修改
}, 1000 * 60 * 30); // 1000*60*30 即:毫秒*秒*分
},
}
附加:
也可以将时间转换成时间戳进行对比判断,如下:
// 将时间转换为时间戳
let newTime = moment().format('YYYY MM DD HH:mm:ss'); // 当前时间
let endTime = moment().format('YYYY MM DD 08:30:00'); // 固定每天08:30:00
至此完成!!!
测试有效!!!感谢支持!!!