2015-02-09 11 views
7

Sto usando la versione 2.0.0-rc8 di sequelize. Quando ho archiviato l'ora locale, memorizza sempre la data UTC. È possibile memorizzare l'ora della data locale usando sequelize?Come memorizzare l'ora della data locale in sequenza?

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString? – micnic

+0

@micnic Ho passato l'ora della data locale nella query ma memorizza come UTC nel database. – Gurpinder

+0

Converte l'ora locale in UTC – Gurpinder

risposta

8

Come altri hanno già accennato nei commenti, sequelize converte la data in UTC - questo è di progettazione, perché rende più facile il sequelize con cui lavorare, e per assicurare che sequelizzare i client in diversi fusi orari vedrà lo stesso timestamp .

In javascript la data sarà sempre nell'ora locale del server - questa è una proprietà dell'oggetto data javascript.

Si può dire sequelize per memorizzare la data in un fuso orario diverso utilizzando l'opzione timezone:

new Sequelize(db, user, pass, { 
    timezone: '+01:30' 
}); 

Questo salverà tutte le date con quel fuso orario e anche assumere che sono tutte le date attualmente salvati nel DB in quel fuso orario

+0

Grazie mille. Ho letto il tuo blog su Github, apprezzo molto il tuo lavoro. Ma ho una domanda che ho 4 campi data/ora in tabella. Voglio memorizzarne due come ora locale e il resto di due come UTC. Posso definire quali colonne devono essere UTC e quali set essere locali usando l'opzione di fuso orario sopra indicata? – Gurpinder

+0

@ Jan Aagaard Meier Il problema principale è che diversi utenti memorizzano i loro orari locali. Quindi non è possibile impostare il fuso orario per tutti i campi. Voglio che abbia passato una stringa locale in una query al suo salvataggio come nel database come usiamo in mYSQl – Gurpinder

+0

Risposta breve, no - l'opzione del fuso orario è globale. Perché hai bisogno di memorizzare il fuso orario dell'utente? –

Problemi correlati