2011-09-16 19 views
12

Sto provando a cambiare il formato delle date che sto ottenendo dal mio database Mongo. Attualmente sembrano in questo modo:Come posso formattare le date da Mongoose in Node.js?

Fri Sep 16 2011 19:05:17 GMT+0900 (JST) 

Ho provato a chiamare .toString('yyyy-MM-dd') su di loro, ma non cambia nulla. Non so se sono oggetti Date o solo stringhe non elaborate.

Ho provato a controllare il manuale di Mongoose ea cercare su Google un gruppo, ma non ho ancora trovato nulla.

Qualche idea?

risposta

13

è necessario creare un Data primo oggetto:

var date = new Date(dateStr); // dateStr you get from mongodb 

var d = date.getDate(); 
var m = date.getMonth()+1; 
// ... 
6

per quanto riguarda la definizione dello schema simile:

var someSchema = new Schema({ 
    title: String, 
    created: Date 
}); 

S.T. la data viene memorizzata come oggetto Date nel tuo mongoDB. Di conseguenza, quando lo rileggi, avrai un vero oggetto Date su cui puoi lavorare con i metodi disponibili.

+0

Sembra un genio pazzo. Dovrò fare un tentativo. –

+0

@BenHumphreys ha funzionato per me :) – Juri

13

Un modo moderno per farlo è utilizzare momentjs, entrambi utilizzabili nel nodo e nel browser, super utili e semplici da utilizzare. Per il problema corrente I risolto simili nel nodo dopo aver seguito tutti i requisiti Documenti:

var moment = require('moment'); 
var fomatted_date = moment(photo.date_published).format('YYYY-DD-MM'); 

con photo.date_published proveniente direttamente da mangusta.

+0

'YYYY-DD-MM' dovrebbe essere' YYYY-MM-DD' –

Problemi correlati