Подтвердить что ты не робот

Как мне форматировать даты из Mongoose в Node.js?

Я пытаюсь изменить формат дат, которые я получаю из своей базы данных Mongo. В настоящее время они выглядят так:

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

Я пробовал называть .toString('yyyy-MM-dd') на них, но ничего не меняется. Я не знаю, являются ли они объектами Date или просто сырыми строками.

Я пробовал проверять руководство Mongoose и гуглингу, но ничего не нашел.

Любые идеи?

4b9b3361

Ответ 1

сначала необходимо создать объект Date:

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

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

Ответ 2

Современный способ сделать это - использовать momentjs, которые можно использовать в node и в браузере, супер полезные и простые использовать. Для текущей проблемы я решил это сделать в node после выполнения всех требований к документам:

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

с photo.date_published непосредственно из мангуста.

Ответ 3

как определить вашу схему как:

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

s.t. дата хранится как объект Date в вашем mongoDB. В результате, когда вы его прочитаете, у вас будет правильный Date объект, с которым вы сможете работать с доступными методами.