相信有的小伙伴业务中会用到每天0点刷新数据 / 整点刷新数据。
一 丶0点刷新
逻辑:
算出今天24:00的时间戳 减去当前的时间戳,然后添加一个定时器setTimeout,执行时间为我们取得的时间戳,然后执行setInterval 定时器,执行时间为1000 * 60 * 60 * 24(一天的时间戳)
代码:
moment.js 为时间处理插件 地址:moment.js
//引入插件
import moment from 'moment'
var nowTemp = new Date().getTime() //获取当前时间戳
var tomorrowTemp = new Date(moment().add(1, 'days').format().substr(0,10)+' 00:00:00').getTime() //获取今天24:00的时间戳
var residueTemp = tomorrowTemp - nowTemp //距离当天24:00的时间戳
console.log(residueTemp)
//执行定时任务
setTimeout(()=>{
this.getfootpathList('0点刷新')
this.getequipmentList('0点刷新')
//次天0点 执行每天24;00 刷新
setInterval(() => {
this.getfootpathList('0点刷新')
this.getequipmentList('0点刷新')
}, 1000*60*60*24);
},residueTemp)
二丶 整点刷新
逻辑
先算出当前日期(小时)下个小时整点的日期,取下个整点日期的时间戳减去当前日期的时间戳,添加一个setTimeout时间为取到的时间戳,在添加一个setInterval,时间为1000* 60*60。
代码:
//引入插件
import moment from 'moment'
var nowTemp = new Date().getTime() //获取当前时间戳
var nexthoursTemp = new Date(moment().add(1, 'hours').format('YYYY-MM-DD H:mm:ss').substr(0,14)+':00:00').getTime() //获取下个小时整点的时间戳
var residueTemp = nexthoursTemp- nowTemp //当前距离下个小时整点的时间戳
console.log(residueTemp)
//执行定时任务
setTimeout(()=>{
刷新方法
//次时0点 执行下个小时整点刷新
setInterval(() => {
刷新方法
}, 1000*60*60);
},residueTemp)