Vue 指定时间刷新页面

1、时间格式化js

validate.js

export default {
format (fmt) {
let o = {
'y+': this.getFullYear(), // 年
'M+': this.getMonth() + 1, // 月份
'd+': this.getDate(), // 日
'h+': this.getHours(), // 小时
'm+': this.getMinutes(), // 分
's+': this.getSeconds(), // 秒
'q+': Math.floor((this.getMonth() + 3) / 3), // 季度
'S': this.getMilliseconds() // 毫秒
}
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length))
}
for (var k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
}
}
return fmt
}
}

2、main.js引入

import { getToken } from '../src/utils/auth'
import validate from './utils/validate'
Vue.prototype.validate = validate

各组件调用

// eslint-disable-next-line no-extend-native
Date.prototype.format = this.validate.format
let today = new Date().format('yyyy-MM-dd')

3、零点刷新

在main.js里写

window.vue = new Vue({
el: '#app',
store,
router,
store2,
components: { App },
template: '<App/>',
created () {
if (getToken()) {
this.startSub(this)
}
window.setInterval(() => {
// eslint-disable-next-line no-extend-native
Date.prototype.format = validate.format
let format = new Date().format('hh:mm:ss')
if (format === '00:00:00') {
store.dispatch('mapalarm/update_alarm_data', [])
location.reload()
}
}, 1000)
},
beforeDestroy () {
this.closeSub()
}
})

 

posted @ 2020-02-26 11:31  sosolucky  阅读(982)  评论(0编辑  收藏  举报