• vue moment库格式化处理日期


    开篇

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

    后端处理

    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

    前端处理需要安装下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=" 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>
    
    

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


     
     

    作者:程序员同行者
    链接:https://www.jianshu.com/p/6be55d12b2b7
    来源:简书

  • 相关阅读:
    Pro*C,oci,occi的作用以及区别联系?
    图片缩放 剪切
    去除DataGridView选中行背景色的方法
    重写DataGridView的sort方法 自定义排序
    很好用的js日历 kimsoftjscalendar 感谢KimSoft
    计时器例子
    gcc与g++有什么区别?
    VB.NET全角半角check
    Java 集合框架(Collection)和数组的排序
    Click Models for Web Search(1) Basic Click Models
  • 原文地址:https://www.cnblogs.com/sylys/p/12157548.html
Copyright © 2020-2023  润新知