2014-05-09 7 views

risposta

29

ho aggiunto fuso orario in index.js durante l'inizializzazione di connessione mysql

var db_config = { 
    host  : 'localhost', 
    user  : 'xxx', 
    password : '', 
    database : 'xxx', 
    timezone: 'utc' //<-here this line was missing 
}; 
+0

unfortınately questo non si risolve il problema per me , altre risposte? – tuku

+1

Questo non ha funzionato neanche per me, temo –

2

Anche se questa è una vecchia questione, ho avuto un problema simile e aggiungendo la configurazione timezone: 'utc' non ha risolto il problema (peggiora).

La soluzione che ho infine utilizzato è quella di aggiungere la configurazione dateStrings : true tale che ho una data stringa raw e il modulo mysql non esegue da sé la conversione in una data javascript.

Quindi uso moment.utc (thedatestring) per ottenere un oggetto javascript adatto (nel database, salvo tutte le date come UTC nelle colonne DATETIME, indipendentemente dalla configurazione dell'host). Utilizzando Moment.js.

0

È inoltre possibile impostare la proprietà dateStrings su DATETIME.

dateStrings: i tipi di data di forzatura (TIMESTAMP, DATETIME, DATE) devono essere restituiti come stringhe anziché gonfiati in oggetti Date JavaScript. (Default: false)

consultare: https://github.com/mysqljs/mysql#connection-options

2

provare a impostare il valore di fuso orario a "UTC + 0", che ha lavorato per me.

+0

Fantastico. Ha funzionato anche per me. Grazie. – user681365

0

dopo essere caduto su questo problema ancora e ancora ho trovato la soluzione desiderata.

My nodeJS app recupero dati da mySQL db tramite Sequelize ORM.

Assicurarsi che il fuso orario sia lo stesso ovunque.

config.js:

const timezone = 'UTC' 
process.env.TZ = timezone 

sequelize_config.js:

const sequelize = new Sequelize(database, user, password, 
    options: { 
    host, 
    dialect: 'mysql', 
    port, 
    timezone: 'UTC', // for writing to database 
    dialectOptions: { 
     useUTC: true, // for reading from database 
    }, 
    } 
} 

spero che farà risparmiare tempo di qualcuno di cadere a questo ciclo ... :)

Problemi correlati