vue时间封装

导读:本篇文章讲解 vue时间封装,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言

一般情况下,后台人员返回给我们的时间格式要么是 “1999-02-07T21:35:56.157Z” ,要么就是一串时间戳,例: “1641963929” ,那为了统一格式,我们需要将时间转换成统一的格式,下面分享两种不同情况下对于时间格式的转换。

第一种:"1999-02-07T21:35:56.157Z" 格式

首先我们先建立一个公共的js文件,然后在main.js中引入并注册,最后在组件中使用即可。

formatDate.js文件

import Vue from "vue";
Vue.filter('formatDate', function (originVal) {
  const dt = new Date(originVal)
  const y = dt.getFullYear()
  const m = (dt.getMonth() + 1 + '').padStart(2, '0')
  const d = (dt.getDate() + '').padStart(2, '0')
  const hh = (dt.getHours() + '').padStart(2, '0')
  const mm = (dt.getMinutes() + '').padStart(2, '0')
  const ss = (dt.getSeconds() + '').padStart(2, '0')
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})

main.js文件

//时间过滤引入并注册
import * as formatDate from './components/formatDate' //引入
Vue.use(formatDate) //注册

组件中使用

示例

<template>
  <div>
    <p>开始时间:{{timeDate | formatDate}}</p>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        timeDate: "1999-02-07T21:35:56.157Z",
      }
    },
  }
</script>

效果展示
在这里插入图片描述
第二种:"1641964865" 格式

同上,我们先建立一个公共的js文件,然后在main.js中引入并注册,最后在组件中使用即可。

timestamp.js文件

import Vue from "vue";
Vue.filter("ProductDate", function (value) {
    const time = new Date(value * 1000);
    const Y = time.getFullYear()
    const M = (time.getMonth() + 1).toString().padStart(2, '0')
    const D = time.getDate().toString().padStart(2, '0')
    const h = time.getHours().toString().padStart(2, '0')
    const m = time.getMinutes().toString().padStart(2, '0')
    const s = time.getSeconds().toString().padStart(2, '0')
    return `${Y}-${M}-${D} ${h}:${m}:${s}`
})

main.js文件

//时间戳转换引入并注册
import * as timestamp from './components/timestamp'
Vue.use(timestamp)

组件中使用

示例

<template>
  <div>
    <p>结束时间:{{timeDateTwo | productDate}}</p>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        timeDateTwo: "1641964865"
      }
    },
  }
</script>

效果展示
在这里插入图片描述

到这里,两种情况的封装都已经完成了,大家在使用的时候可以根据后端返回的格式选择使用哪一种方法转换。


拓展延伸

获取当天开始时间 — 结束时间 2022-01-14 00:00:00 — 2022-01-14 23:59:59

在这里插入图片描述

<template>
  <div></div>
</template>
<script>
  export default {
    data() {
      return {
        gather: {
          startTime: "", //开始时间
          endTime: "", //结束时间
        },
      }
    },
    mounted() {
      // this.dateFormat 调用时间方法
      this.gather.startTime = this.dateFormat(new Date(new Date(new Date().toLocaleDateString()).getTime()));
      console.log(this.gather.startTime, "开始时间");
      this.gather.endTime = this.dateFormat(new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 *
        60 * 1000 - 1));
      console.log(this.gather.endTime, "结束时间");
    },
    methods: {
      //时间方法
      dateFormat: function (time) {
        let date = new Date(time);
        let year = date.getFullYear();
        // 在日期格式中,月份是从0下标开始的,所以我们要再最后面+1
        // 使用三元表达式在小于10的前面补0,以达到格式统一  如 08:01:01
        let month =
          date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
        let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
        let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
        let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
        let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
        // 将年月日时分秒拼接在一起
        return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
      },
    }
  }
</script>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79410.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!