vue 过滤器,获取时间戳对象转换为日期格式
1. 简单页面展示用
<template>
<!-- time为时间戳 -->
<div>{{time | formatDate}}</div>
<!-- 结果为 2018-01-23 18:31:35 -->
</template>
export default {
data() {
return {
time: 1516703495241
};
},
filters: {
formatDate: function (value) {
let date = new Date(value);
let y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? ('0' + MM) : MM;
let d = date.getDate();
d = d < 10 ? ('0' + d) : d;
let h = date.getHours();
h = h < 10 ? ('0' + h) : h;
let m = date.getMinutes();
m = m < 10 ? ('0' + m) : m;
let s = date.getSeconds();
s = s < 10 ? ('0' + s) : s;
return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
}
}
}
<template>
<!-- time为时间戳 -->
<div>{{time | formatDate}}</div>
<!-- 结果为 2018-01-23 18:31:35 -->
</template>
export default {
data() {
return {
time: 1516703495241
};
},
filters: {
formatDate: function (value) {
let date = new Date(value);
let y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? ('0' + MM) : MM;
let d = date.getDate();
d = d < 10 ? ('0' + d) : d;
let h = date.getHours();
h = h < 10 ? ('0' + h) : h;
let m = date.getMinutes();
m = m < 10 ? ('0' + m) : m;
let s = date.getSeconds();
s = s < 10 ? ('0' + s) : s;
return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
}
}
}
<template> <!-- time为时间戳 --> <div>{{time | formatDate}}</div> <!-- 结果为 2018-01-23 18:31:35 --> </template> export default { data() { return { time: 1516703495241 }; }, filters: { formatDate: function (value) { let date = new Date(value); let y = date.getFullYear(); let MM = date.getMonth() + 1; MM = MM < 10 ? ('0' + MM) : MM; let d = date.getDate(); d = d < 10 ? ('0' + d) : d; let h = date.getHours(); h = h < 10 ? ('0' + h) : h; let m = date.getMinutes(); m = m < 10 ? ('0' + m) : m; let s = date.getSeconds(); s = s < 10 ? ('0' + s) : s; return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s; } } }
2在方法中使用过滤器
//原写法
<div>{{time | formatDate}}</div>
//方法中写法
this.$options.filters.formatDate(value)
res.data.list[0].avgTalkDuration= this.$options.filters.formatSeconds(res.data.list[0].avgTalkDuration)
//原写法
<div>{{time | formatDate}}</div>
//方法中写法
this.$options.filters.formatDate(value)
res.data.list[0].avgTalkDuration= this.$options.filters.formatSeconds(res.data.list[0].avgTalkDuration)
//原写法 <div>{{time | formatDate}}</div> //方法中写法 this.$options.filters.formatDate(value) res.data.list[0].avgTalkDuration= this.$options.filters.formatSeconds(res.data.list[0].avgTalkDuration)
3. 复杂业务使用 moment.js
安装: cnpm install moment –save
vue中使用:
import moment from 'moment'
<div>{{dateBegin | formatDate}}</div>
filters: {
formatDate: function (value) {
return moment(value).format('YYYY-MM-DD')
}
},
submit() {
console.log(moment(this.dateBegin).format('YYYY-MM-DD'))
}
import moment from 'moment'
<div>{{dateBegin | formatDate}}</div>
filters: {
formatDate: function (value) {
return moment(value).format('YYYY-MM-DD')
}
},
submit() {
console.log(moment(this.dateBegin).format('YYYY-MM-DD'))
}
import moment from 'moment' <div>{{dateBegin | formatDate}}</div> filters: { formatDate: function (value) { return moment(value).format('YYYY-MM-DD') } }, submit() { console.log(moment(this.dateBegin).format('YYYY-MM-DD')) }