如何在Node.js中格式化Mongoose的日期?

Ben*_*eys 15 javascript date mongoose mongodb node.js

我正在尝试更改我从Mongo数据库获取的日期格式.目前它们看起来像这样:

Fri Sep 16 2011 19:05:17 GMT+0900 (JST)
Run Code Online (Sandbox Code Playgroud)

我试过要求.toString('yyyy-MM-dd')他们,但没有任何改变.我不知道他们是Date对象还是原始字符串.

我已经尝试检查Mongoose手册并谷歌搜索一堆,但还没有找到任何东西.

有任何想法吗?

elo*_*one 22

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

var moment = require('moment');
var fomatted_date = moment(photo.date_published).format('YYYY-DD-MM');
Run Code Online (Sandbox Code Playgroud)

photo.date_published从猫鼬直接来了.


pky*_*eck 17

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

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

var d = date.getDate();
var m = date.getMonth()+1;
// ...
Run Code Online (Sandbox Code Playgroud)


Jur*_*uri 11

如何定义您的架构如:

var someSchema = new Schema({
    title: String,
    created: Date
});
Run Code Online (Sandbox Code Playgroud)

st将日期存储为DatemongoDB中的对象.因此,当您阅读它时,您将拥有一个适当的Date对象,您可以使用可用的方法.