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

Javascript 如何在Node.js中格式化Mongoose中的日期?,javascript,date,mongodb,node.js,mongoose,Javascript,Date,Mongodb,Node.js,Mongoose,我正在尝试更改从Mongo数据库中获取的日期格式。目前它们看起来是这样的: Fri Sep 16 2011 19:05:17 GMT+0900 (JST) 我试着对它们调用.toString('yyyy-MM-dd'),但没有任何变化。我不知道它们是Date对象还是原始字符串 我试着查看猫鼬手册,用谷歌搜索了一大堆,但还没有找到任何东西 有什么想法吗?您必须先创建一个日期对象: var date = new Date(dateStr); // dateStr you get from mon

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

Fri Sep 16 2011 19:05:17 GMT+0900 (JST)
我试着对它们调用
.toString('yyyy-MM-dd')
,但没有任何变化。我不知道它们是
Date
对象还是原始字符串

我试着查看猫鼬手册,用谷歌搜索了一大堆,但还没有找到任何东西


有什么想法吗?

您必须先创建一个日期对象:

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

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

如何定义您的模式,如:

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

s、 t.日期存储为mongoDB中的
date
对象。因此,当您读回它时,您将拥有一个适当的
日期
对象,您可以在该对象上使用可用的方法。

实现这一点的现代方法是使用,在节点和浏览器中都可用,非常有用且使用简单。对于当前的问题,在遵循所有文档要求后,我在节点中像这样解决了它:

var moment = require('moment');
var fomatted_date = moment(photo.date_published).format('YYYY-MM-DD');
直接来自猫鼬的
photo.date\u发布

只需添加

date:{type:String,默认值:date}


输出将是:{“日期”:“星期六2020年11月28日22:57:38 GMT+0530(印度标准时间)”}

听起来像是疯狂的天才。我得试一试。你如何验证?例如,出生在上个世纪。。。(?)
YYYY-DD-MM
应该是
yyy-MM-DD
将日期字符串传递到新日期(“2011年9月16日星期五19:05:17 GMT+0900”)。然后执行常规日期方法。