问题:
按照常规连接池的方式,我们会发现,在日期相关字段会出现两个问题:
1、时间不对,似乎慢了8小时;
2、查询出来的时间,类似:2023-08-08T09:32:03
这显然与我们想要的不同,下面介绍如果通过配置Sequelize解决这两个常见问题。
问题1:
原因:时区默认是0时区;而我们所在地区为东8区;即+8:00;会比0时区多8小时或者说快8小时;
解决方案:
new Sequelize(dbName, user, password, {
dialect: 'mysql',
host: host,
port: port,
timezone: '+08:00',//解决时区问题
})
问题2:
原因:默认时间查询出来为UTC时间,我们通过配置字段处理一下即可
解决方案:
new Sequelize(dbName, user, password, {
dialect: 'mysql',
host: host,
port: port,
timezone: '+08:00',//解决时区问题
dialectOptions: {
dateStrings: true,
typeCast: true
},//解决UTC时间问题
})