web-dev-qa-db-ja.com

Node.jsでMongooseの日付をフォーマットするにはどうすればよいですか?

Mongoデータベースから取得する日付の形式を変更しようとしています。現在、次のようになっています。

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

.toString('yyyy-MM-dd')を呼び出してみましたが、何も変わりません。 Dateオブジェクトなのか、生の文字列なのかはわかりません。

Mongooseのマニュアルをチェックして、たくさんをググってみましたが、まだ何も見つかりませんでした。

何か案は?

15
Ben Humphreys

最初にDateオブジェクトを作成する必要があります。

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

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

これを行う最新の方法は、ノードとブラウザの両方で使用できる momentjs を使用することで、非常に便利で使いやすいです。現在の問題については、すべてのドキュメント要件を満たした後、ノードでこのように解決しました:

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

photo.date_publishedマングースから直接来ています。

20
eloone

スキーマを次のように定義するのはどうですか:

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

s.t.日付はDateオブジェクトとしてmongoDBに保存されます。その結果、それを読み返すと、適切なDateオブジェクトが作成され、使用可能なメソッドを操作できるようになります。

10
Juri