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

一、问题描述:

在项目中引用了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;
    },
相关推荐
_丿丨丨_5 小时前
XSS(跨站脚本攻击)
前端·网络·xss
天天进步20155 小时前
前端安全指南:防御XSS与CSRF攻击
前端·安全·xss
拾光拾趣录7 小时前
括号生成算法
前端·算法
拾光拾趣录8 小时前
requestIdleCallback:让你的网页如丝般顺滑
前端·性能优化
前端 贾公子8 小时前
vue-cli 模式下安装 uni-ui
前端·javascript·windows
拾光拾趣录8 小时前
链表合并:双指针与递归
前端·javascript·算法
@大迁世界8 小时前
前端:优秀架构的坟墓
前端·架构
拼图2098 小时前
element-plus——图标推荐
javascript·vue.js·elementui
期待のcode8 小时前
图片上传实现
java·前端·javascript·数据库·servlet·交互
hbrown9 小时前
Flask+LayUI开发手记(十一):选项集合的数据库扩展类
前端·数据库·python·layui