J'essaie de changer le format des dates que je reçois de ma base de données Mongo. Actuellement, ils ressemblent à ceci:
Fri Sep 16 2011 19:05:17 GMT+0900 (JST)
J'ai essayé d'appeler .toString('yyyy-MM-dd')
sur eux mais rien ne change. Je ne sais pas si ce sont des objets Date
ou simplement des chaînes brutes.
J'ai essayé de vérifier le manuel de Mongoose et de googler un tas, mais je n'ai encore rien trouvé.
Des idées?
vous devez d'abord créer un objet Date:
var date = new Date(dateStr); // dateStr you get from mongodb
var d = date.getDate();
var m = date.getMonth()+1;
// ...
Une façon moderne de le faire est d'utiliser momentjs , à la fois utilisable en nœud et dans le navigateur, super utile et simple à utiliser. Pour le problème actuel, je l'ai résolu comme ceci dans le nœud après avoir suivi toutes les exigences de la documentation:
var moment = require('moment');
var fomatted_date = moment(photo.date_published).format('YYYY-DD-MM');
avec photo.date_published
provenant directement de la mangouste.
que diriez-vous de définir votre schéma comme:
var someSchema = new Schema({
title: String,
created: Date
});
s.t. la date est stockée sous la forme d'un objet Date
dans votre mongoDB. Par conséquent, lorsque vous le relirez, vous disposerez d'un objet Date
approprié sur lequel vous pourrez travailler avec les méthodes disponibles.