vue 日期格式化过滤器

时间:2021-11-25 18:11:05

formateDate日期格式化,写在公共的js中:

export function formateDate(date, fmt){
if ('/(y+)/'.test(fmt){
fmt = fmt.replace(RegExp.$1, (date.getFullYear()+'').substr(4-RegExp.$1.length));
}
let obj = {
'M+': date.getMonth()+1,
'd+': date.getDate(),
'h+': date,getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in obj){
if(new RegExp(`(${k}`).test(fmt)){
let str = obj[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str:padLeftZero(str));
}
}
return fmt;
} //padLeftZero: 在数字前面补0,如月份为9,则显示09:
function padLeftZero(str){
  return ('00'+str).substr(str.length);
}

在需要引用formateDate方法的vue组件中引入:

 import {formateDate} from ...

 1 filters: {
2 formateDate(time){
3 let date = new Date(time);
4 return formateDate(date, 'yyyy-MM-dd hh:mm');
5 }
6 }