Как мне отформатировать даты из Mongoose в Node.js? - PullRequest
14 голосов
/ 16 сентября 2011

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

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

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

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

Есть идеи?

Ответы [ 3 ]

20 голосов
/ 04 июля 2013

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

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

с photo.date_published, прямо идущим от мангуста.

17 голосов
/ 16 сентября 2011

Вы должны сначала создать объект Date:

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

var d = date.getDate();
var m = date.getMonth()+1;
// ...
10 голосов
/ 03 июня 2012

как насчет определения вашей схемы, например:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...