NodeJS reagiert MySQL Zeitzone ist anders, wenn ich direkt von MySQL abholen

7

Wenn ich MySQL direkt anfordere, bekomme ich das Datum in UTC zurück (ich setze UTC im MySQL-Server), aber mit NodeJS bekomme ich UTC + 2 lokale Zeitzonendaten, warum? Wie kann ich NodeJS einstellen, um UTC zu erhalten?

    
János 09.05.2014, 17:56
quelle

5 Antworten

32

Ich habe die Zeitzone in index.js hinzugefügt, als ich die mysql-Verbindung initialisiert habe

%Vor%     
János 09.05.2014, 18:23
quelle
2

Obwohl dies eine alte Frage ist, hatte ich ein ähnliches Problem und das Hinzufügen der config timezone: 'utc' hat das Problem nicht gelöst (es wird schlimmer).

Die Lösung, die ich schließlich benutzt habe, ist, die config dateStrings : true hinzuzufügen, so dass ich ein rohe String-Datum habe und mysql-Modul selbst nicht die Umwandlung in ein Javascript-Datum durchführt.

Dann benutze moment.utc (thedatestring), um ein passendes Javascript-Objekt zu erhalten (in der Datenbank speichere ich alle Daten als UTC in DATETIME-Spalten, unabhängig von der Konfiguration des Hosts). Verwenden Sie Moment.js .

    
Azias 27.03.2016 11:21
quelle
2

Versuchen Sie, den Zeitzonenwert auf "UTC + 0" zu setzen, was für mich funktioniert hat.

    
Aleks Towers 25.05.2017 00:07
quelle
0

Sie können die Eigenschaft dateStrings auch auf DATETIME setzen.

dateStrings: Erzwinge Dateitypen (TIMESTAMP, DATETIME, DATE), die als Zeichenfolgen und nicht als aufgeblähtes JavaScript-Date-Objekt zurückgegeben werden. (Standard: false)

Siehe: Ссылка

    
Bala 16.08.2016 13:20
quelle
0

Nachdem ich immer wieder auf dieses Problem gestoßen bin, habe ich die gewünschte Lösung gefunden.

Meine nodeJS App ruft Daten von mySQL db über Sequelize ORM ab.

Stellen Sie sicher, dass die Zeitzone überall gleich ist.

config.js :

%Vor%

sequelize_config.js :

%Vor%

Ich hoffe, es wird jemandem Zeit ersparen, in diese Schleife zu fallen ...:)

    
DavidA 27.01.2018 11:33
quelle

Tags und Links