前言

建议在 src 目录下新建一个 common 文件夹,新建 date.js 文件

date.js

export function formatDate(date, fmt) {
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
  }

  let o = {
    'M+': date.getMonth() + 1,
    'd+': date.getDate(),
    'h+': date.getHours(),
    '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;
}

function padLeftZero(str) {
  return ('00' + str).substr(str.length);
}

组件使用

<template>
  <div>
    <p>{{ date | formatDate }}</p>
    <p>{{ date | formatDate2 }}</p>
    <p>{{ date | formatDate3 }}</p>
  </div>
</template>

<script>
import { formatDate } from '@/common/date.js';

export default {
  data() {
    return {
      date: 1646461131351
    };
  },
  filters: {
    // 时间格式可自定义
    formatDate(time) {
      const date = new Date(time);
      return formatDate(date, 'yyyy.MM.dd');
    },
    formatDate2(time) {
      const date = new Date(time);
      return formatDate(date, 'hh:mm:ss');
    },
    formatDate3(time) {
      const date = new Date(time);
      return formatDate(date, 'yyyy年MM月dd日 hh:mm:ss');
    }
  }
};
</script>

效果图

在这里插入图片描述

如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。

Logo

前往低代码交流专区

更多推荐