前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue moment库格式化处理后端传的日期

vue moment库格式化处理后端传的日期

作者头像
程序员同行者
发布2018-09-27 16:45:43
2.5K0
发布2018-09-27 16:45:43
举报

开篇

日期时间格式前端和后端都可以处理,我比较推荐前端来处理(定制化高),下面我就介绍下两种处理的方式

后端处理

django默认不经处理传给前端的日期格式为2018-08-26T19:53:36.538463,这往往不是我们希望的,其实处理这个很简单,只要在序列化类中处理下就好,如下

class WorkOrderSerializer(serializers.ModelSerializer):
    """
    序列化类
    """
    # 后端处理时间
    apply_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True)
    complete_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", read_only=True)

    class Meta:
        model = WorkOrder
        fields = "__all__"

我们来看下接口,可以发现日期已经被格式成我们想要的了

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 9,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 11,
            "apply_time": "2018-09-01 11:03:13",
            "complete_time": "2018-09-01 11:03:13",
         }
            ]
        }

前端处理

http://momentjs.cn/ 官网

先来看下未处理的日期格式

image
image

前端处理需要安装下moment(JavaScript 日期处理类库)

npm install moment --save

然后在需要格式化日期的组件中引入moment,也可以全局引入的

<script>
import moment from 'moment' # 导入
export default {
  name: 'order-list',
  props: ['value'],
  methods: {
    # 编写日期格式化方法
    dateFormat: function(row, column) {
      console.log(row, column)
      const date = row[column.property]
      if (date === undefined) {
        return ''
      }
      # 这里的格式根据需求修改
      return moment(date).format('YYYY-MM-DD HH:mm:ss')
    }

  }
}
</script>

在template中使用

<template>
  <div class="workorder-list">
  <el-table
    :data="value"
    border
    stripe
    style="width: 100%">
    <el-table-column
      label="申请时间"
      prop="apply_time"
      :formatter="dateFormat" # formatter为固定写法,dateFormat就是刚写的方法
      >
    </el-table-column>
    <el-table-column
      label="完成时间"
      prop="complete_time"
      :formatter="dateFormat">
    </el-table-column>
      </template>
    </el-table-column>

  </el-table>
  </div>
</template>

这样就可以了,在来看下处理后的日期格式

image
image

本篇结束

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开篇
  • 后端处理
  • 前端处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档