java前端传过去后端的时间差八个小时,这是怎么回事?

前端传过去后端的时间差八个小时,这是怎么回事?



onClick: function (obj) {
      //通过传入的选择的时间段,展示不同的按钮
      var date = moment().format("yyyy-MM-DD HH:mm", new Date());
      var end = moment(obj).add(2, 'hour').format("YYYY-MM-DD HH:mm:ss");


      if (obj <= date && date <= end) {
        this.show = true;
      } else {
        this.show = false;
      }

      // var date = moment().format("YYYYMMDDHH",obj);
      this.$axios.post("/seckill/findCoursesByTime", {date: obj}).then(res => {
        this.seckillList = res.data.data;
      })
    }

时区不一样,你看一下服务端的时区,一般设置成GMT+8

可能是因为前后端的时区不同导致的。前端获取到的时间是本地时间,而后端获取到的时间可能是以其他时区为基准的时间。如果前端和后端的时区不一致,则会导致时间差。

解决方法可以是在前端将时间转换为UTC时间,然后传给后端,后端再将UTC时间转换为本地时间。这样可以保证前后端获取的时间是一致的。

前后端不存在时区问题,就是数据库的问题,https://blog.csdn.net/weixin_51485547/article/details/129091557