<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>过滤器</title> <script type="text/javascript" src="../vue.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.7/dayjs.min.js"></script> </head> <body> <div id="root"> <h2>显示格式化后的时间</h2> <!-- 计算属性实现--> <h3>计算属性实现:{{formatDatetime}}</h3> <!-- 方法实现--> <h3>方法实现:{{fmtDatetime()}}</h3> <!-- 过滤器实现--> <h3>过滤器实现1:{{time | formatDt}}</h3> <!-- 过滤器传参--> <h3>过滤器实现2:{{time | formatDt('YYYY_MM_DD')}}</h3> <!-- 多过滤器--> <h3>多过滤器实现:{{time | formatDt('YYYY_MM_DD') | yearSlice}}</h3> <!-- 全局过滤器--> <h3>全局过滤器:{{time | formatDt('YYYY_MM_DD') | globalSlice}}</h3> <!-- 绑定时使用过滤器--> <h3 :t="time | formatDt">绑定时使用过滤器:F12</h3> </div> </body> <script type="text/javascript"> Vue.config.productionTip = false // 全局过滤器 Vue.filter('globalSlice', function (val) { return val.slice(0, 4) }) const vm = new Vue({ el: '#root', data: { time: Date.now() }, methods: { fmtDatetime() { return dayjs(this.time).format("YYYY年MM月DD日 HH:mm:ss") } }, computed: { formatDatetime() { return dayjs(this.time).format("YYYY-MM-DD HH:mm:ss") } }, filters: { formatDt(val, fmt_str = "YYYY_MM_DD HH:mm:ss") { return dayjs(val).format(fmt_str) }, yearSlice(val) { return val.slice(0, 4) } } }) </script> </html>