sql >> Database >  >> RDS >> Mysql

Waarom wordt mijn datum van mysql met één dag verlaagd in javascript?

De Z betekent "zero hour offset" ook wel bekend als "Zulu time" (UTC). Wanneer u de datum uit de database opvraagt, zijn er twee mogelijke scenario's dat de datum verandert, ofwel in de databaselaag of op de applicatielaag, door deze aan te passen aan de tijdzone waarin u zich bevindt.

Dus als de database-instelling bijvoorbeeld automatisch tijd opslaat naar UTC wanneer u de werkelijke gegevens hebt ontvangen, wordt deze geconverteerd naar uw huidige tijdzone. Maar uit uw voorbeeld is 2016-12-20 geconverteerd naar 2016-12-19T23:00:00.000Z, dan neem ik aan dat uw database-instelling op datum het opslaat in een bepaalde tijdzone en het vervolgens converteert naar UTC.

Om het op te lossen, probeert u uw toepassingslogica of database-instelling aan te passen, voor mij doe ik het liever op toepassingsniveau en behoud de datum in DB om op te slaan in UTC.

Probeer dit om het verschil te zien en kan u een hint geven over het oplossen van uw probleem:

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



  1. MySQL RAND() hoe vaak kan het worden gebruikt? gebruikt het /dev/random?

  2. Testen van PostgreSQL-functies die refcursor verbruiken en retourneren

  3. String in rij splitsen

  4. Het wijzigen van de MySQL-tabel om een ​​externe sleutelbeperking toe te voegen, leidt tot fouten