如何在vue-table-2中显示列的计算值

时间:2018-10-01 05:22:54

标签: vue.js

服务器API返回日期/时间为纪元(eventTime)的数据集。我需要将其转换为日期/时间人类可读的格式。实现相同目标的正确格式是什么?

用于显示表格的模板

<div class="table-responsive">
   <v-client-table
      :data="tableData"
      :columns="columns"
      :options="options">
   </v-client-table>
</div>

JS部分

data () {
  return {
    User,
    title: 'Verifications',
    columns: ['trackingcode', 'userName', 'eventTime',
      'scanResult', 'place_info.administrative_area_level_1'],
    tableData: [],
    rows: this.tableData,
    options: {
      uniqueKey: '_id',
      headings: {
        trackingcode: 'Serial Num',
        userName: 'User Name',
        dateTime: 'Date/Time',
        scanResult: 'Status',
        'place_info.administrative_area_level_1': 'City'
      },
      columnsDropdown: true,
      filterByColumn: true,
      sortable: ['trackingcode', 'userName'],
      filterable: ['trackingcode', 'userName', 'place_info.administrative_area_level_1']
    }
  }

methods: {
  getHumanDate: function (date) {
    var fixedstring
    try {
      // If the string is UTF-8, this will work and not throw an error.
      fixedstring = decodeURIComponent(escape(date))
    } catch (e) {
      // If it isn't, an error will be thrown, and we can asume that we have an ISO string.
      fixedstring = date
    }
    return moment.unix(fixedstring / 1000).format('DD-MMM-YYYY h:mm:ss A Z')
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用js Date对象完成所有这些操作,我看不出问题出在哪里?

要将ms-since-epoch转换为日期对象,只需将其放入构造函数中即可... new Date(1538380103350);做到这一点的最佳位置是在收到JSON.parse()之后,甚至可以使用reviver函数,但要从其他数据中识别这种格式的日期可能会很棘手。

然后使用toLocaleDateString()的所有优点格式化或翻译日期。请提供所需格式的更多详细信息,我可能会提供更多方便的建议:-)