I created a table with timestamps using sequelize. when I am updating the table, it automatically updates the timestamp (i.e createdAt and updatedAt). but these times are different from my local time. I have attached herewith 2 screenshots with the model script if I use moment to convert timezone like this useupdateddAt: moment().utc(new Date())
it works fine. is there a way to automatically update the timestamps with current timezone?
'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');
}
};
when updateding the table
my local time in the pc
Create database like this you'll get automatically created at updated at according local time
const sequelize = new Sequelize("db_name", "username", "password",
{
logging: false,
host: "localhost",
dialect: "mysql",
dialectOptions: {
// useUTC: false, //for reading from database
dateStrings: true,
typeCast: true,
timezone: "+05:30"
},
timezone: "+05:30", //for writing to database
operatorsAliases: false
});
I'm late but this works for me: new Sequelize(db,user,pass, {timezone: "-05:00"}) where "-05:00" is offset time.
En config.json too...
{
"development": {
"database": "db",
"username": "user",
"password": "pwd",
"logging": false, // verbose
"host": "localhost",
"dialect": "mysql",
"operatorsAliases": false,
"timezone": "-05:00"
},
"test": {
...
},
"production": {
...
} }
You should set the timezone
property in sequelize options:
const sequelize = new Sequelize({
database: 'db_name',
username: 'username',
password: null,
dialect: 'mysql'
timezone: 'utc', // your timezone comes here, ex.: 'US/Hawaii'
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With