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/ 官网

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

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

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

本篇结束

原文地址:https://www.cnblogs.com/guigujun/p/9574701.html

时间: 2024-07-31 16:02:22

vue moment库格式化处理后端传的日期的相关文章

35个最好用的Vue开源库(史上最全)

无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包.对于开发者来说,如果没有这些开源软件包,很难想象我们的生活会变得多么疲惫不堪,而且靠咖啡度日也会成为家常便饭.所幸的是,随着 Vue.js 社区的不断壮大,每天都会出现一些很好的软件包. 在下文中,我们将推荐一些非常好用的 Vue 开源库 Vue.js .Vue.js 是一个非常易用的渐进式 JavaScript 框架,用于构建用户界面. 1.Vue Dark Mode Vue.js 的一个极简主义的深色设计系统.它提供了基本组件,用于构建

Vue.js 入门指南之“前传”(含sublime text 3 配置)

题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴级别”的前端开发人员,大牛请绕过. 1,下载安装Node.js 去 Node.js 官网下载一个Windows环节的安装包 node-v6.2.0-x64.rar 文件,一路安装下去即可.官网访问很慢,可以试试中文网 http://nodejs.cn/ 2,配置Vue环境 一开始看<基于Webpac

Mac下svn问题——“.a”(静态库)文件无法上传解决

“.a”(静态库)文件无法上传(svn工具) 网上查询了一下,说是Xcode自带的svn和Versions以及一些其它工具都不能上传".a"文件. 解决办法如下: 1.打开终端,输入cd,空格,然后将需要上传的.a文件所在的文件夹(不是.a文件)拖拽到终端(此办法无需输入繁琐的路径,快捷方便) ,回车: 2.之后再输入如下命令:svn add libGoogleAnalytics.a,回车: 3.之后会出现:A  (bin)  libGoogleAnalytics.a 表示添加成功,打

Vue.js 入门指南之“前传”

题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴级别”的前端开发人员,大牛请绕过. 1,下载安装Node.js 去 Node.js 官网下载一个Windows环节的安装包 node-v6.2.0-x64.rar 文件,一路安装下去即可.官网访问很慢,可以试试中文网 http://nodejs.cn/ 2,配置Vue环境 一开始看<基于Webpac

Spring MVC之中前端向后端传数据

Spring MVC之中前端向后端传数据 Spring MVC之中前端向后端传数据和后端向前端传数据是数据流动的两个方向, 在此先介绍前端向后端传数据的情况. 一般而言, 前端向后端传数据的场景, 大多是出现了表单的提交,form表单的内容在后端学习的md文档之中有所介绍,form标签的语法格式如下 <FORM NAME="FORM1" ACTION="URL" METHOD="GET|POST" ENCTYPE="MIME&qu

后端传过来一个JS代码,前端拿到之后执行

今天收到了一个需求,居然是后端给我传过来一个JS代码,然后前端去执行. 因为后端传过来的JS代码是一个字符串,所以刚开始有点懵,以前也没有做过这样的东西所以刚开始没有方法. 这个项目是使用了前后端分离的格式,所以代码在服务器渲染是不可能了,所以只能在浏览器端想方法. 再网上扎到了几个方法, 一.使用Function方法,代码为如下 var str = 'alert(1)';(new Function(str))(); 二.使用eval方法 var str = 'alert(1)';eval(st

如何打造一套vue组件库

开篇组件库能帮我们节省开发精力,无需所有东西都从头开始去做,通过一个个小组件拼接起来,就得到了我们想要的最终页面.在日常开发中如果没有特定的一些业务需求,使用组件库进行开发无疑是更便捷高效,而且质量也相对更高的方案. 目前的开源组件库有很多,不管是react还是vue的体系里都有很多非常优秀的组件库,比如我经常使用的就有elementui和iview.当然也还有其他的一些组件库,他们的本质其实都是为了节省重复造基础组件这一轮子的过程.也有的公司可能会对自己公司的产品有特别的需求,不太愿意使用开源

PHP date 格式化一个本地时间/日期

PHP date 格式化一个本地时间/日期 date (PHP 4, PHP 5) date — 格式化一个本地时间/日期 说明 string date ( string $format [, int $timestamp ] ) 返回将整数 timestamp 按照给定的格式字串而产生的字符串.如果没有给出时间戳则使用本地当前时间.换句话说,timestamp 是可选的,默认值为 time(). Tip 自 PHP 5.1.1 起有几个有用的常量可用作标准的日期/时间格式来指定 format 

c++ boost库学习一:时间和日期

timer类 #include <boost\timer.hpp> #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { boost::timer t; cout<<"max time span: "<<t.elapsed_max()/3600<<"h"<<endl; //596.5