vue v-for 获取了一个时间戳, 然后加过滤器, 变成了NaN-NaN-NaN,为什么?

vue v-for 获取了一个时间戳, 然后加过滤器, 变成了NaN-NaN-NaN,不加过滤器,能够正常显示出来。这个什么原因

后台获取了一个数据,v-for循环显示出了 ws.craeateTime 是一个13位的毫秒数,formatDate是过滤器

vue v-for 获取了一个时间戳, 然后加过滤器, 变成了NaN-NaN-NaN,为什么?_第1张图片vue v-for 获取了一个时间戳, 然后加过滤器, 变成了NaN-NaN-NaN,为什么?_第2张图片

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

警告

  • 未处理

  • {{ws.createTime | formatDate}}

    >>>

选择器

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;
}

你可能感兴趣的:(JS,vuejs)