创建filters>filter.js
export function formatDate(time, fmt) {
if (time === undefined || '') {
return
}
const date = new Date(time)
console.log(/(y+)/.test(fmt));
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 : ('00' + str).substr(str.length))
}
}
return fmt
}
创建filters>index.js
import Vue from "vue";
import * as filter from "./filter";
Object.keys(filter).forEach((k) => Vue.filter(k, filter[k]));
Vue.prototype.$formatDate = Vue.filter("formatDate");
main.js
import './filters'
使用方法
<template>
<div>{{ time | formatDate("yyyy-MM-dd") }}</div>
</template>
export default {
data () {
return {
time:'Tue Jan 31 2023 14:53:12 GMT+0800 (中国标准时间)',
}
},
created() {
this.$formatDate(this.time,"yyyy-MM-dd")
},
}