Sequelize создан на и обновлен на неправильные метки времени - PullRequest
0 голосов
/ 27 апреля 2018

Я создал таблицу с метками времени, используя sequelize. когда я обновляю таблицу, она автоматически обновляет временную метку (т.е. создается и обновляется). но эти времена отличаются от моего местного времени. Я приложил к настоящему моменту 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');
  }
};

при обновлении таблицы enter image description here

мое местное время в ПК enter image description here

Ответы [ 3 ]

0 голосов
/ 28 октября 2018

Я опоздал, но это работает для меня: new Sequelize (db, user, pass, {timezone: "-05: 00"}), где "-05: 00" - время смещения.

En config.json тоже ...

{
"development": {
"database": "db",
"username": "user",
"password": "pwd",
"logging": false, // verbose
"host": "localhost",
"dialect": "mysql",
"operatorsAliases": false, 
"timezone": "-05:00"
},
"test": {
...
},  
"production": {
...

} }

0 голосов
/ 02 февраля 2019

Создайте подобную базу данных, которую вы автоматически создадите при обновлении в соответствии с местным временем

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 });

0 голосов
/ 27 апреля 2018

Вы должны установить свойство timezone в параметрах сиквела:

const sequelize = new Sequelize({
  database: 'db_name',
  username: 'username',
  password: null,
  dialect: 'mysql'
  timezone: 'utc', // your timezone comes here, ex.: 'US/Hawaii'
});
...