美文网首页vuevue
20. Vue 过滤器 - 转化时间格式

20. Vue 过滤器 - 转化时间格式

作者: Devops海洋的渔夫 | 来源:发表于2020-03-14 15:57 被阅读0次

需求

在上一篇中基本讲诉了Vue过滤器的基本使用,那么在后台管理系统的业务中,使用最多的一个过滤器就是时间格式的转化,下面来看看,如何处理。

构建示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--  1.导入vue.js库  -->
    <script src="lib/vue.js"></script>

</head>
<body>

<div id="app">

    <!--  定义一个时间字符串的显示  -->
    <p> 时间:{{ ctimeStr }} </p>

    <!--  使用过滤器显示时间  -->
    <p> 格式化时间:{{ ctimeStr | formatCtime }} </p>

</div>

<script>

    // 2. 创建一个Vue的实例
    var vm = new Vue({
        el: '#app',
        data: {
            ctimeStr: new Date(), // 定义显示时间
        },
        methods: {},
        filters:{ // 定义局部过滤器

            // 格式化时间
            formatCtime(dateStr){
                return dateStr
            }

        }
    });


</script>

</body>
</html>

页面显示如下:

格式化年月日

formatCtime(dateStr){
        // 格式化dateStr时间
        var dt = new Date(dateStr);

        // 获取年
        var year = dt.getFullYear();

        // 获取月
        var month = dt.getMonth() + 1; // 月份 0 - 11,需要 + 1

        // 获取日
        var day = dt.getDate();

        // 拼接 yyyy-mm-dd
        return year + '-' + month + '-' + day
}

下面来看看格式化效果,如下:

模板字符串优化字符串拼接

可以看到已经格式化好了年月日了,下一步就是格式化时分秒,但是上面有一个可以优化的地方。

return year + '-' + month + '-' + day

这里的字符串拼接可以使用模板字符串的方式进行修改,增强语义,如下:

return `${year}-${month}-${day}` // 模板字符串

设置格式化参数

在时间格式化的常见示例中:

  • 格式化年月日 yyyy-mm-dd
  • 格式化年月日时分秒 yyyy-mm-dd hh:mm:ss

那么上面应该要有这两个参数的传入,来控制到底需要显示为什么格式。

在过滤器中设置传入的格式化参数,如下:

格式化时分秒

上面已经完成可以格式化两种时间格式,下面来完善时分秒的格式化,如下:

        filters:{ // 定义局部过滤器

            formatCtime(dateStr, pattern = ""){
                    // 格式化dateStr时间
                    var dt = new Date(dateStr);

                    // 获取年
                    var year = dt.getFullYear();

                    // 获取月
                    var month = dt.getMonth() + 1; // 月份 0 - 11,需要 + 1

                    // 获取日
                    var day = dt.getDate();

                    // 判断格式化是 yyyy-mm-dd 还是 yyyy-mm-dd hh:mm:ss
                    if (pattern.toLowerCase() === "yyyy-mm-dd"){

                        // 拼接 yyyy-mm-dd
                        // return year + '-' + month + '-' + day
                        return `${year}-${month}-${day}` // 返回yyyy-mm-dd格式化时间

                    } else{

                        // 获取小时
                        var hours = dt.getHours();

                        // 获取分钟数
                        var minutes = dt.getMinutes();

                        // 获取秒数
                        var secounds = dt.getSeconds();

                        // 返回 yyyy-mm-dd hh:mm:ss 格式化时间
                        return `${year}-${month}-${day} ${hours}:${minutes}:${secounds}`
                    }


            }

        }

浏览器显示格式化的时间如下:

相关文章

  • 20. Vue 过滤器 - 转化时间格式

    需求 在上一篇中基本讲诉了Vue过滤器的基本使用,那么在后台管理系统的业务中,使用最多的一个过滤器就是时间格式的转...

  • tool.js

    vue时间格式过滤器(今天,昨天,周几,年月日) vue金额过滤器 手机横屏签名功能(vue)

  • 13、vue 中格式化时间

    过滤器格式化时间 date.js 格式化方法使用 vue中过滤器使用 v-model中格式化时间(过滤器就失效了)...

  • Vue前端面试2021-017

    1、Vue中的过滤器的作用是什么 ?如何声明过滤器? Vue中的过滤器主要是用来按照指定的格式进行数据输出格式渲染...

  • vue filter 过滤器使用

    格式化时间 自定义全局过滤器 vue 自定义过滤器分为"全局过滤器"和"局部过滤器"两种。 一、 全局过滤器 全局...

  • Vue.js备忘记录(四) vue过滤器文本格式化, 插槽 sl

    一. vue过滤器 //文本格式化 Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。 过滤器可以用...

  • 过滤器filters(私有方式应用)filter(全局方式应用)

    过滤器的使用 一般用来 实现对象时间转换为格式化时间 声明私有过滤器语法: Vue实例化过程中,与el、data平...

  • vue 过滤器filter的详解

    1.代码运用的地方 2.场景: 时间格式的转化 3. 注册过滤器函数 首先定义过滤器有两种方式,第一种是全局过滤器...

  • Vue 基础 04

    1.Vue中的过滤器 定义:让要显示在页面上的内容进行重新筛选 全局过滤器: HTML格式: JS格式: 局部过滤...

  • vue过滤器的简单使用介绍

    一、vue过滤器的介绍 官方言: Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两...

网友评论

    本文标题:20. Vue 过滤器 - 转化时间格式

    本文链接:https://www.haomeiwen.com/subject/xfdkzctx.html