ELement UI时间控件el-date-picker误差8小时解决办法

一、问题描述:

在项目中引用了elementui中的date-picker组件,选中的时间跟实际相差八小时,且格式不是自己想要的格式

<el-date-pickertype="date"placeholder="选择日期"format="yyyy/M/d"v-model="form.timestamp"></el-date-picker>

如图输入的是:
在这里插入图片描述
得到的是
在这里插入图片描述

二、解决办法

①在data里定义变量

form: {timestamp: new Date()},

②在使用form.timestamp之前要对它做处理

this.form.timestamp = this.YymmddFormat(this.form.timestamp)

③在methods里加入方法;格式自己可定义;我这里输出的是yyyy/M/d 仅供参考哦

YymmddFormat(newDate) {let Month = newDate.getMonth() + 1;Month = Month;let d = newDate.getDate();return [[newDate.getFullYear(), Month, d].join("/")].join("");},

如果要输出yyyy-MM-dd格式的,可参考如下代码

YymmddFormat(newDate) {let Month = newDate.getMonth() + 1;Month = Month >= 10 ? Month : "0" + Month;let d = newDate.getDate();d = d >= 10 ? d : "0" + d;return [[newDate.getFullYear(), Month, d].join("-")].join("");},

如果加上时分秒,参考参考,可能有误。

dateTrans(date) {let _date = new Date(parseInt(date));let y = _date.getFullYear();let m = _date.getMonth() + 1;m = m < 10 ? "0" + m : m;let d = _date.getDate();d = d < 10 ? "0" + d : d;let h = _date.getHours();h = h < 10 ? "0" + h : h;let minute = _date.getMinutes();let second = _date.getSeconds();minute = minute < 10 ? "0" + minute : minute;second = second < 10 ? "0" + second : second;let dates = y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s;return dates;},