vue 将后台数据时间戳转换成日期格式

前言

不同组件多次复用的话,建议在 src 下新建一个 common 文件夹,创建 date.js 文件,方便多次复用

在组件中使用

<template>
  <div>
    <p>{{ date | formatDate }}p>
    <p>{{ date | formatDate2 }}p>
    <p>{{ date | formatDate3 }}p>
  div>
template>
<script>
import { formatDate } from '@/common/date.js'; // 在组件中引用date.js
export default {
  data() {
    return {
      date: 1646461131351
    };
  },
  filters: {
    // 时间格式自定义 只需把字符串里面的改成自己所需的格式
    formatDate(time) {
      let date = new Date(time);
      return formatDate(date, 'yyyy.MM.dd');
    },
    formatDate2(time) {
      let date = new Date(time);
      return formatDate(date, 'hh:mm:ss');
    },
    formatDate3(time) {
      let date = new Date(time);
      return formatDate(date, 'yyyy年MM月dd日 hh:mm:ss');
    }
  }
};
script>

效果图
vue 将后台数据时间戳转换成日期格式_第1张图片
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);
}

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

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

你可能感兴趣的:(vue,javaScript)