1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>Vue filters</title>
6 </head>
7 <body>
8 <div id="app">
9 {{ date | formDate }}
10 </div>
11 <!-- 开发环境版本,包含了用帮助的命令行警告 -->
12 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
13 <script type="text/javascript">
14
15 var padDate = function(value) {
16 return value < 10 ? '0' + value : value;
17 };
18
19 var app=new Vue({
20 el:'#app',
21 data:{
22 date: new Date()
23 },
24 filters: {
25 formDate: function(value) {//value即为需要过滤的数据
26 var date = new Date(value);
27 var year = date.getFullYear();
28 var month = padDate(date.getMonth() + 1);
29 var day = padDate(date.getDate());
30 var hours = padDate(date.getHours());
31 var minutes = padDate(date.getMinutes());
32 var secondes = padDate(date.getSeconds());
33 //返回整理好的数据
34 return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + secondes;
35 }
36 },
37 mounted: function() {
38 var _this = this;//声明一个变量指向Vue实例this,保证作用域一致
39 this.timer = setInterval(function() {
40 _this.date = new Date();//修改数据date
41 }, 1000)
42 },
43 beforeDestroy: function() {
44 if(this.timer) {
45 clearInterval(this.timer);//在Vue实例销毁前,清除定时器
46 }
47 }
48 })
49
50 </script>
51 </body>
52 </html>
![](https://images2018.cnblogs.com/blog/1131005/201805/1131005-20180530164413474-106636733.png)