根据时分秒判断 执行某段逻辑的方法

背景:业务方要求每天 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

至此完成!!!

测试有效!!!感谢支持!!!

猜你喜欢

转载自blog.csdn.net/qq_38543537/article/details/131559105