如何在Node.js中从Mongoose格式化date?

我正在尝试更改从Mongo数据库获取date的格式。 目前他们看起来像这样:

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

我试过对它们调用.toString('yyyy-MM-dd') ,但没有任何改变。 我不知道他们是Date对象还是只是原始string。

我试过检查Mongoose手册和谷歌search,但还没有发现任何东西。

有任何想法吗?

你必须先创build一个Date对象:

 var date = new Date(dateStr); // dateStr you get from mongodb var d = date.getDate(); var m = date.getMonth()+1; // ... 

一个现代化的方法是使用节点和浏览器都可用的momentjs ,超级有用和简单易用。 对于目前的问题,我按照所有的文档要求在节点中解决了这个问题:

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

photo.date_published直接来自mongoose。

那么如何定义你的模式呢?

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

stdate被存储为你的mongoDB中的Date对象。 因此,当您读回时,您将拥有一个适当的Date对象,您可以在其中使用可用的方法。