Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum wird mein Datum aus MySQL in Javascript um einen Tag verringert?

Das Z bedeutet "Null-Stunden-Offset", auch bekannt als "Zulu-Zeit" (UTC). Wenn Sie das Datum aus der Datenbank abfragen, gibt es zwei mögliche Szenarien, in denen das Datum geändert wird, entweder in der Datenbankschicht oder in der Anwendungsschicht, wodurch es an die Zeitzone angepasst wird, in der Sie sich befinden.

Wenn also beispielsweise die Datenbankeinstellung Zeit automatisch in UTC speichert, wenn Sie die tatsächlichen Daten erhalten, werden sie in Ihre aktuelle Zeitzone konvertiert. Aber aus Ihrem Beispiel wird 2016-12-20 in 2016-12-19T23:00:00.000Z konvertiert, dann gehe ich davon aus, dass Ihre Datenbankeinstellung am Datum es in einer bestimmten Zeitzone speichert und dann in UTC konvertiert.

Um das Problem zu beheben, versuchen Sie, Ihre Anwendungslogik oder Datenbankeinstellung anzupassen, für mich mache ich es eher auf Anwendungsebene und behalte das Datum in DB bei, um es in UTC zu speichern.

Probieren Sie dies aus, um den Unterschied zu erkennen, und erhalten Sie Hinweise zur Lösung Ihres Problems:

var currentDate = new Date();
var isoDate = currentDate.toISOString();
console.log(currentDate, isoDate);