我使用 sequelize 创建了一个带有时间戳的表。当我更新表时,它会自动更新时间戳(即 createdAt 和 updatedAt)。但这些时间与我的本地时间不同。如果我使用 moment 像这样转换时区,我附上了 2 个带有模型脚本的屏幕截图 updateddAt: moment().utc(new Date())
它工作正常。有没有办法用当前时区自动更新时间戳?
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('States', {
hashCode: {
type: Sequelize.STRING,
unique:true,
autoIncrement:false
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('States');
}
};
更新表格时
我在电脑上的本地时间
最佳答案
您应该设置 timezone
Sequelize 选项中的属性:
const sequelize = new Sequelize({
database: 'db_name',
username: 'username',
password: null,
dialect: 'mysql'
timezone: 'utc', // your timezone comes here, ex.: 'US/Hawaii'
});
关于timezone - Sequelize createdAt 和 updatedAt 时间戳错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50057759/