1.创建filters>filter.js
/**
* vue 过滤器
*/
/**
*格式化时间
*yyyy-MM-dd hh:mm:ss
*/
export function formatDate(time, fmt) {
if (time === undefined || '' || time === null) {
return
}
time = time.replace(/-/g, '/')
time = time.replace(/T/g, ' ')
const date = new Date(time)
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
const o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
}
for (const k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
const str = o[k] + ''
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
}
}
return fmt
}
function padLeftZero(str) {
return ('00' + str).substr(str.length)
}
/**
* 获取星期
*/
export function formatWeeksDate(time) {
if (time === undefined || '' || time === null) {
return
}
time = time.replace(/T/g, ' ')
const date = new Date(time)
let weeks = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
let wk = date.getDay()
return weeks[wk]
}
2.创建filters>index.js
import Vue from 'vue'
import * as filter from './filter'
//将filters.js里面所有导出的数据循环遍历,在全局引入
Object.keys(filter).forEach(k => Vue.filter(k, filter[k]))
//绑定在原型上
Vue.prototype.$formatDate = Vue.filter('formatDate')
Vue.prototype.$formatWeeksDate = Vue.filter('formatWeeksDate')
3.main.js
// 过滤器
import './filters'
4.使用方法
<template>
<div>{{ time | formatDate("yyyy-MM-dd hh:mm:ss") }}</div>
// 2001-07-04 12:08:56 格式化后的时间
<h1>{{time1 | formatWeeksDate()}}</h1>
//周三
</template>
export default {
name: 'HomeView',
data () {
return {
time1:'Wed, 4 Jul 2001 12:08:56 -0700',
time2:'20222-7-3'
}
},
}