vue3 通过计算属性代替 filter 过滤器实现时间格式化

vue3 通过计算属性代替 filter 过滤器实现时间格式化,第1张

在vue3中没有了 filter 过滤器,想要实现时间格式化,就需要我们另辟蹊径,所以我尝试了用

计算属性代替它去格式化时间。

第一步:网上查找能格式化时间的代码

// 用于格式化时间
// 设置按需导出
export function formatDate(value, format) {
  //value: 需要格式化的数据
  //format: 指定格式 yyyy-MM-dd hh:mm:ss

  let date = new Date(value);
  // 获取年份
  let year = date.getFullYear();

  if (/(y+)/.test(format)) {
    // 获取匹配组的内容
    let content = RegExp.$1;
    format = format.replace(content, year.toString().slice(4 - content.length));
  }

 let o = {
   // y: date.getFullYear(),  // 用这一句也行,但只适用于四位数显示时候用
   M: date.getMonth() + 1,
   d: date.getDate(),
   h: date.getHours(),
   m: date.getMinutes(),
   s: date.getSeconds()
 };

 for (let key in o) {
   // 构造动态正则
   let reg = new RegExp(`(${key}+)`);

   if (reg.test(format)) {
     // 获取匹配组的内容
     let content = RegExp.$1;
     let k = o[key] >= 10 ? o[key] : content.length == 2 ? '0' + o[key] : o[key];
     format = format.replace(content, k);
   }
 }
 return format;
}

第二步:在页面按需导入

import { formatDate } from '@/utils/index'

computed: {
 formatDate() {
   return formatDate
  }
 },

第三步:在作用域插槽中的使用

//在插槽中格式化时间
// row.timeOfEntry是我想要格式化的时间

//在页面上使用
formatDate('2021.3.6', "hh:mm dd/MM/yyyy")

提示
formatDate(value, format)
  //value: 需要格式化的数据
  //format: 指定格式 yyyy-MM-dd hh:mm:ss

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1324554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存