Sequelize存储时间时差8小时问题

发表于: 2023-01-06 16:44:06

简介: Node中使用Sequelize存储时间时差8小时问题

问题

今天在创建文章的时候,发现创建时间跟当前的时间差了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" // 东八时区
    }
)

最后更新于:2023-01-06 16:45:13