vue v-for 获取了一个时间戳, 然后加过滤器, 变成了NaN-NaN-NaN,不加过滤器,能够正常显示出来。这个什么原因
后台获取了一个数据,v-for循环显示出了 ws.craeateTime 是一个13位的毫秒数,formatDate是过滤器
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
<div v-for=" ws in wmessage" class="wmessageBoxTop">
<div class="wmessageBoxTopleft"><p>警告</p></div>
<ul class="wmessageBoxTopright">
<li><p>未处理</p></li>
<li class="wmessageBoxTopTime">
<div><p>{{ws.createTime | formatDate}}</p><p>>>></p></div>
</li>
</ul>
</div>
选择器
filters: {
formatDate: function (value) {
var date = new Date(value);//时间戳为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;
}
},
解决方案
formatDate: function (value) {
var val = JSON.parse(value)
var date = new Date(val);//时间戳为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;
}