mysql数据库里面date的数据取出来格式和时间都不对了

我前端输入一个2017-08-20,后台接收并且录入数据库,在数据库中显示的也是2017-08-20,但是从数据库中取出来的时候就变成2017-08-19T16:00:00.000Z,我想了很久也没解决,是录取数据库之前这个日期就错了么?但是我只是相当于打了个字符串啊,求大神解决

阅读 13.6k
5 个回答

谢谢大家的参与,说取出数据在做处理的还是治标不治本,最有效的做法就是在连接mysql的配置文件中添加一条,timezone:"08:00",好了结贴

时区不对。你这个是UTC通用标准时。
用show variables like "%time_zone%",看看数据库时区,改一下mysql时区

图片描述

所有时间相关的处理建议用 moment http://momentjs.com/docs/#/pa...。你这种情况 format 一下就行了:

const moment = require('moment');
moment("2017-08-19T16:00:00.000Z").format('YYYY-MM-DD HH:mm:ss');
  1. 确定下时区

  2. 转化成一样的时间格式进行比较,如都转化成UTC时间

没有错,存到数据库里面是标准时间是,我国东八区,所以错了八小时

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题