How do I format dates from Mongoose in Node.js?

Just Simply Add

date: { type: String, default: Date }

Output will be: { "date": "Sat Nov 28 2020 22:57:38 GMT+0530 (India Standard Time)" }


what about defining your schema like:

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

s.t. the date is stored as a Date object in your mongoDB. As a result, when you read it back you'll have a proper Date object on which you can work with the available methods.


you have to create a Date object first:

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

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

A modern way to do this is to use momentjs, both usable in node and in the browser, super useful and simple to use. For the current problem I solved it like this in node after following all the docs requirements :

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

with photo.date_published directly coming from mongoose.