一、问题描述:
在项目中引用了elementui中的date-picker组件,选中的时间跟实际相差八小时,且格式不是自己想要的格式
<el-date-picker
type="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;
},