vue 时间戳转换成时间显示

后台给的表格数据里时间是一个13位的时间戳,需要转换成时间显示在表格里,

// 时间戳转换成时间
      timestampToTime (cjsj) {
        var date = new Date(cjsj) //时间戳为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
        console.log(timestampToTime (1533293827000))
    },

请问在<template>里的表格中怎么调用这个方法,我调用了都没有获取到时间。
用的是element-ui框架里的表格组件<el-table-column>,里面是prop上绑定的字段名,请问这个时间戳该怎么转换后绑定在表格上

回答:

<el-table-column label="创建时间" prop="cjsj" :formatter="timestampToTime" align="center">
</el-table-column>

用element-ui表格自带的:formatter函数,来格式化表格内容

// 时间戳转换成时间
// 使用element table组件中的formatter属性,传入一个函数
      timestampToTime (row, column) {
        var date = new Date(row.cjsj) //时间戳为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
        console.log(timestampToTime (1533293827000))
    },

回答:

1、写一个时间处理函数
2、Vue.filter 放到全局中
3、在 template

<el-table-column
                label="登录时间"
                with="300"
                :show-overflow-tooltip="true">
                <template slot-scope="scope">
                    <i class="el-icon-time"></i>
                    <span>{{ scope.row.last_login_time | timestampToTime('{y}-{m}-{d} {h}:{i}') }}</span>
                </template>
            </el-table-column>

回答:

两种:

 //1. {{}}    直接方法加参数行了 
{{timestampToTime(youtimestamp)}}

//2.绑定到属性

:propetyName="timestampToTime(youtimestamp)"

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注