js将2018-10-08T13:32:47.000+0800 转成正常时间格式

141 阅读1分钟

在网上找的解决办法,使用JavaScript 日期处理类库——moment.js文档

第一步:安装
npm install moment --save
第二步:局部引入或全局引入

局部引入:

import moment from 'moment'

全局引入(main.js文件)

import moment from 'moment'
Vue.prototype.$moment = moment
第三步:使用

返回来的数据中有一个createTime属性,数据是2018-10-08T13:32:47.000+0800格式。

解决办法:在获取到数据时,就更改格式,再赋值给list,这样在el-table中显示就是正常时间格式了。

getList() {
    getUserlist(this.listQuery).then((response) => {
        let records = response.data.records;
        records.forEach((item) => {
            // 局部使用
            item.createTime = moment.utc(item.createTime).local().format("YYYY-MM-DD HH:mm:ss");
            // 全局使用
            item.createTime = this.$moment.utc(item.createTime).local().format("YYYY-MM-DD HH:mm:ss");
        });
        this.list = records;
    });
},

在el-table表格中显示转换后的时间:

image.png

具体时间格式转换可以去查看官方文档,好用!




转换时间:2023-03-31T00:00:00.000+08:00, 原来new Date()就能搞定!! 在uniapp中可以不用安装moment插件就能解决~

    let s = '2023-03-31T00:00:00.000+08:00'
    let t = formatDate(s)  // 2023-3-31 00:00:00
    
    formatDate(time){
        let date = new Date(time);
        let year = date.getFullYear();
        // 在日期格式中,月份是从0开始的,因此要加0,使用三元表达式在小于10的前面加0,以达到格式统一  如 09:11:05
        let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
        let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
        let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
        let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
        let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
        // 拼接
        return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
    },    



在uniapp中使用moment.js

image.png

image.png