node.js - hur man fixar datumfelet med hjälp av Date.now()


Jag använder Date.now() för att få det aktuella datumet och tiden, men jag visste inte problemet jag har. Scenariot är detta: jag använder konsolen för att kontrollera om Date.now() genererar rätt tid eller inte. Tyvärr fick jag rätt datum i Unix-kodvärde, konverterade och kontrollerade att det var rätt tid och datum, men när jag satte in det i Mongoose-schema användes några timmar bakåt och lagrade datumet med några timmars förskjutning. Men när jag hämtar det objektet med datum returnerar det några timmar bakåt i tid, men när jag binder det med Angular front visar det rätt tid, den tid jag satte i Mongoose. Problemet är att jag inte kan filtrera data efter datum eftersom det objektet innehåller några timmar bakåt.

Här är typescript-objektet som jag pushar på mongoo

bill = {
    orderArray: [],
    //investment total
    totalActual:0,
    //sale total
    totalSale: 0,
    //investment - sale 
    totalSave: 0,
    quantity: 0,
    date: Date.now()
} 

och här är mongo-schemat:

var cartSchema = mongoose.Schema({
    orderArray: Array,
    date: { type: Date,  default: Date.now },
    totalActual: Number,
    totalSale: Number,
    totalSave: Number,
})

Svar #1

  1. Vänligen kontrollera om din databasserver och applikation körs i samma tidszon
  2. Eller konvertera din lokala tid till UTC-format från applikationssidan och skicka den till MongoDB