今天使用v-for获取一个时间戳, 然后加过滤器,添加数据之后, 变成了NaN-NaN-NaN,不加过滤器,能够正常显示出来。这个什么原因?
<td>{{ item.ctime | dateFormat('')}}</td>
//全局过滤器,进行时间格式化
Vue.filter('dateFormat',function(dateStr,pattern){
//根据给定的时间字符串,得到特定的时间
var dt = new Date(dateStr)
var y = dt.getFullYear()
var m = dt.getMonth() + 1
var d = dt.getDate()
if(pattern.toLowerCase() ==='yyyy-mm-dd'){
return `${y}-${m}-${d}`
}else{
var hh=dt.getHours()
var mm=dt.getMinutes()
var ss=dt.getSeconds()
return `${y}-${m}-${d}-${hh}:${mm}:${ss}`
}
})
结果发现后台返回的是字符串,先把变量转为date类型,再添加过滤器
<td>{{Date (item.ctime) | dateFormat('')}}</td>
结果如下: