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

时间:2011-09-16 10:10:07

标签: javascript date mongodb node.js mongoose

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

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

我尝试过调用.toString('yyyy-MM-dd')但没有任何变化。我不知道它们是Date个对象还是只是原始字符串。

我已经尝试检查Mongoose手册并搜索了一堆,但还没有找到任何内容。

有什么想法吗?

5 个答案:

答案 0 :(得分:20)

这样做的一种现代方法是使用momentjs,它既可以在节点中使用,也可以在浏览器中使用,非常有用且易于使用。对于当前的问题,我按照所有文档要求后在节点中解决了这个问题:

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

photo.date_published直接来自mongoose。

答案 1 :(得分:17)

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

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

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

答案 2 :(得分:10)

如何定义您的架构如下:

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

s.t。日期存储为mongoDB中的Date对象。因此,当您阅读它时,您将拥有一个正确的Date对象,您可以在其上使用可用的方法。

答案 3 :(得分:0)

只需添加

[Route("updatepassword/{password}/{email}")] public IHttpActionResult updatepassword(string password,string email) { ......... ....... return response>0 ? Ok():BadRequest(); }

输出将是:{“ date”:“ Sat Nov 28 2020 22:57:38 GMT + 0530(印度标准时间)”}

答案 4 :(得分:0)

created_at:{ 类型:日期, 默认:Date.now } 为当前日期和时间添加这个简单的行

输出:----- 2021 年 7 月 2 日星期五 10:45:26 GMT+0530(印度标准时间)