Vue时间过滤器(转换时间类型)

1.在项目中创建一个Date.js包

在这里插入图片描述
Date.js源码:

		//给Date类添加了一个新的实例方法format
		Date.prototype.format = function (fmt) {
			//debugger;
		    let o = {
		        "M+": this.getMonth() + 1,                 //月份
		        "d+": this.getDate(),                    //日
		        "h+": this.getHours(),                   //小时
		        "m+": this.getMinutes(),                 //分
		        "s+": this.getSeconds(),                 //秒
		        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
		        "S": this.getMilliseconds()             //毫秒
		    };
		    if (/(y+)/.test(fmt))
		        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
		    for (let k in o)
		        if (new RegExp("(" + k + ")").test(fmt))
		            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
		    return fmt;
		};
		
		export function fmtDate(date, pattern){
			let ts = date.getTime();
		    let d = new Date(ts).format("yyyy-MM-dd hh:mm:ss");
		    if (pattern) {
		        d = new Date(ts).format(pattern);
		    }
		    return d.toLocaleString();
		}

2.如何在页面.vue中引用


2.1在script中调用过滤器:

<script>import { fmtDate } from '@/components/xjb/date.js';</script>

2.2 然后在自定义属性(filters)中加入:

filters: {
      filtedate: function(date) {
        let t = new Date(date);
        return fmtDate(t, 'yyyy-MM-dd hh:mm:ss');
      }
    }

3.把数据值转换为想要的格式:


3.1在el-table-column标签中使用过滤器:
在这里插入图片描述
3.2在el-form-item中使用过滤器:
在这里插入图片描述


4.属性介绍(了解):

Data(初始化属性):
组件中的data和实例中的data不同,组件中的data属性对应一个函数,返回值是一个对象;而实例中的data直接对应一个对象。

methods(方法属性):

表示一个具体的操作, 主要写 业务逻辑;(场景:方法的调用)

computed(计算属性):
属性的结果会被缓存, 除非依赖的响应式属性变化才会重新计算, 主要 当做属性来使用;(虽然是个方法,但是当做属性使用)(场景:引用一些经过操作的数据)

watch(监听器)一个对象, 键是需要观测的表达式, 值是对应的回调函数. 主要用来 监听某些特定数据的变化,从而进行某些业务逻辑的操作; 可以看做是computed和methods的结合体;(场景:监听路由地址)

watch和computed的区别

两者都是监听vue属性,但是computed属性中需要一个返回值,而且代码是同步执行,而watch则不需要,代码也可以是异步的。

自定义属性:

	filters: {
	      filtedate: function(date) {
	        let t = new Date(date);
	        return fmtDate(t, 'yyyy-MM-dd hh:mm:ss');
	      }
	    }

props(父组件向子组件传值):
接受父组件传过来的值,可以直接定义成一个数组。也可以是一个对象用传过来的值做校验等

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值