2011-09-16 26 views
12

Mongo veritabanımdan aldığım tarihlerin biçimini değiştirmeye çalışıyorum. Şu onlar şuna benzer: Onlara ama hiçbir şey değişiklikleri .toString('yyyy-MM-dd') aradım ettikNode.js'de Mongoose'dan tarihleri ​​nasıl biçimlendiririm?

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

. Date nesnesi mi yoksa sadece ham dizeler mi bilmiyorum.

Mongoose el kitabını kontrol etmeyi ve bir grup googling yapmayı denedim, ancak henüz bir şey bulamadım.

Herhangi bir fikrin var mı?

cevap

13

önce bir Date nesnesi oluşturmak zorunda:

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

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

neleri sever şema tanımlama hakkında:

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

s.t. tarih, mongoDB'nizde Date nesnesi olarak saklanır. Sonuç olarak, geri okuduğunuzda, mevcut yöntemlerle çalışabileceğiniz uygun bir Date nesnesine sahip olursunuz.

+0

Bu çılgın-genius gibi geliyor. Denemeliyim. –

+0

@BenHumphreys benim için çalıştı :) – Juri

13

Bunu yapmanın modern bir yolu, momentjs, hem düğümde hem de tarayıcıda kullanılabilen, kullanımı oldukça kolay ve kullanmasıdır. Geçerli sorun için ben tüm dokümanlar gereksinimlerini izledikten sonra düğümünde bunu böyle çözdü: photo.date_published ile

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

doğrudan firavunfaresi gelen.

+0

'YYYY-DD-MM'' YYYY-AA-DD' olmalıdır –

İlgili konular