在网上找的解决办法,使用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表格中显示转换后的时间:
具体时间格式转换可以去查看官方文档,好用!
转换时间: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;
},