2017-01-31 4 views
0

Ich habe dieses ModellWie ändert man das Datumsformat in Sequelize ORM Query?

var Loans = sequelize.define('Loans', { 
    book_id: DataTypes.INTEGER, 
    patron_id: DataTypes.INTEGER, 
    loaned_on: DataTypes.DATE 
} 

Querying wie dies weiter unten ausgeführt wird.

Loans.findAll().then(function(loans) { 
    res.render('book_detail', {loans: loans}); 
}); 

Meine Frage ist, wie kann ich loaned_on Feld in Abfrage-Ergebnis in nur YYYY-MM-DD Format zu ändern, und keine Zeit Stempel will.

Derzeit loaned_on Wertfeld als Sun Jan 29 2017 00:00:00 GMT+0000 (GMT) in dem HTML-Formularfeld angezeigt wird und in dem db als 2017-01-29 00:00:00.000 +00:00 gespeicherten Wert.

Btw, db ist sqlite3

Antwort

1

Verwenden https://momentjs.com/docs/#/parsing/string-format/ oder

Loans.findAll().then(function(loans) { 
    loans = loans.map(function (loan) { 
     loan.loaned_on = loan.loaned_on.getFullYear() + '-' + 
      (loan.loaned_on.getMonth() < 9 ? '0' : '') + 
      (loan.loaned_on.getMonth() + 1) + '-' + loan.loaned_on.getDate(); 
     return loan; 
    }); 
    res.render('book_detail', {loans: loans}); 
}); 
+0

Ja diese Arbeit auch in Ordnung. Ich habe auch eine Instanz Methode erstellt wie unten in '' 'Loans''' Modell instanceMethods: { lanedOn: function() { Rückgabe dateFormat (this.loaned_on," yyyy-mm-dd "); }, –

Verwandte Themen