如何将 MySQL 查询返回的 RowDataPacket 中的时间格式转换为常见格式?
发布于 3 年前 作者 minimalistrojan 2131 次浏览 来自 问答

Xnip2018-04-115_17-46-22.jpg

如图,通过 Node.js 的 conn.query 查询 MySQL 数据库( 数据库中的「time_log」列数据格式为 DATETIME ),返回的 RowDataPacket 中时间格式为 ISO 8601 格式。有没有什么方法能让它返回「2018-04-23 02:56:52」这种常见的格式呢?

3 回复

问题解决了。没人回复我就自己留一下,以备遇到相同问题的同学查看。

在 MDN 上发现一个 Date.LocaleString() 方法( MDN - Date.prototype.toLocaleString() )。可以将该时间对象转换为字符串。结果根据不同地区而不同,刚好在中国显示结果为「yyyy-MM-dd HH:mm:ss」。

可以用moment组件,想要什么格式就要什么格式

初始化的时候加一个配置试试

dialectOptions: {
  dateStrings: true, //禁止mysql的转换
  typeCast: true //覆盖了sequelize的转换,看代码,目前只影响date和GEOMETRY,能用
},
timezone: '+08:00'
回到顶部