问题
今天在创建文章的时候,发现创建时间跟当前的时间差了8小时。但是数据库和服务器的时区都是东八区的,没有问题,那也就是说问题出在了Sequelize上。
Sequelize存储时间默认是按照 UTC
标准存储(UTC: 世界标准时间, 北京时间: UTC+8)
所以就产生了存储时间和实际时间相差8小时
解决方案
在连接数据库时添加属性: timezone: '+08:00'
const sequelize = new Sequelize(
MYSQL_DATABASE,
MYSQL_USER,
MYSQL_PASSWORD,
{
host: MYSQL_HOST,
port: MYSQL_PORT,
dialect: 'mysql',
dialectOptions: {
dateStrings: true,
typeCast: true
},
logging: false, // 阻止Sequelize在执行查询时将SQL输出到控制台
timezone: "+08:00" // 东八时区
}
)