在使用vue做表格时,后端传过来的时间数据是时间戳的格式,需要将其转换后显示。
时间戳数据存放于res.data.goods[i].add_time
中,以下为具体转换步骤:
方法一
1.在methods
中添加时间戳转换方法;
// 时间戳转换
timestampToTime(timestamp) {
var date = new Date(timestamp * 1000) //时间戳为10位需*1000,时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-'
var M =
(date.getMonth() + 1 < 10
? '0' + (date.getMonth() + 1)
: date.getMonth() + 1) + '-'
var D = date.getDate() + ' '
var h = date.getHours() + ':'
var m = date.getMinutes() + ':'
var s = date.getSeconds()
return Y + M + D + h + m + s
}
2.在获取列表数据方法中遍历goods
,并将其作为timestapToTime
方法的值传入;然后再将转换后的值替换原本的add_time
。
for (let item of res.data.goods) {
item.add_time = this.timestampToTime(item.add_time)
}
方法二
- 在
main.js
中定义一个全局过滤器
Vue.filter('dateFormate', function(originVal) {
const dt = new Date(originVal)
const y = dt.getFullYear()
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
const d = (dt.getDate() + '').padStart(2,'0')
const hh = (dt.getHours() + '').padStart(2,'0')
const mm = (dt.getMinutes() + '').padStart(2,'0')
const ss = (dt.getSeconds() + '').padStart(2,'0')
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})
- 在对应的前端DOM中使用过滤器渲染
{{ scope.row.add_time | dateFormat }}
此时就转换成功了。
#参考:
1.vue 时间戳转换