node mysql 存在数据库中的时间和取到前端的时间不一致,请问怎么解决

先上图:

这是在数据库中的时间
clipboard.png

这是到前端之后的时间

clipboard.png

这是sql语句
clipboard.png

我从数据库将时间取出来之后,到前端就时间变了

这个是我链接数据库的方法,基本也应该是最基本(?)的方法

const query = function( sql, values, extraValue ) {

  return new Promise(( resolve, reject ) => {
    pool.getConnection(function(err, connection) {
      if (err) {
        reject( err );
      } else {
        // 执行查询
        connection.query(sql, values, (err, rows) => {
          if ( err ) {
            // console.log('connection err', err)
            reject( err );
          } else {
            // console.log('connection resolve', rows)
            const successStr = {
              data: rows,
              state: responseState.SUCCESS,
            };
            // console.log('successStr', successStr)
            resolve( successStr );
          }
          // 连接不再使用,返回连接池
          connection.release();
        });
      }
    })
  })
}

请问我改如何处理才能让前端获取到正确的时间呢

补充:

这个是链接mysql的配置:
clipboard.png

// 连接数据库
clipboard.png

index.js 入口文件index
clipboard.png

clipboard.png

另外我的mysql使用的是navicat链接的esayPHP的mysql数据库,本地电脑没有mysql数据库,这个会不会也有影响?

阅读 5.5k
3 个回答

你用的驱动是mysql的话,去修改创建DB连接时的选项参数,加个dateStrings: true

时间是一致的,只是前端看到的是一个UTC时间(带时区),你可以自己加8个小时(如果是中国),或者用moment.js转成你喜欢的格式。

mysqljs文档
配置连接的时候有个timezone选项设置时区。
或者配置dateStrings选项为true,不转换为Date只返回字符串。

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