一. 封装格式化的js文件
1.封装一个格式化的js文件
//date日期 fmt 格式化
//函数名可以更改
export function formatDate(date, fmt) {
//RegExp.$1替换成后面结果
//date.getFullYear() + ''获取年份转为字符串
//substr截取,比如输入yy为两位,则length是2,截取为2,.substr(2),年份如果是2021 则前面截取为21
//此时RegExp.$1替换的值是19 yyyy-MM-dd为 19-MM-dd
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
//利用正则表达式规则获取月,日,时,分,秒,在for处进行统一处理 n+ 匹配任何包含零个或多个 n 的字符串
let o = {
'M+': date.getMonth() + 1, //M月 m分钟
'd+': date.getDate(),
'h+': date.getHours(), //h为12小时制 H为24小时制
'm+': date.getMinutes(),
's+': date.getSeconds()
};
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
return fmt;
};
//如果发现时间不足两位,给补成两位
//比如传过来是1,length为1 ,先补足为'001',substr截取1位,输出01
function padLeftZero (str) {
return ('00' + str).substr(str.length);
};
二. 组件中使用
1.基本步骤
①时间戳转化成date对象
const date = new Date(时间戳)
②date转化成相应字符串
formatDate(date, "yyyy/MM/dd hh:mm:ss")
2.实际开发中应用
import { formatDate } from "封装的js文件路径";
filters: {
showDate: function (value) {
let date = new Date(value * 1000);
//格式化
return formatDate(date, "yyyy-MM-dd");
},
}