essayer de mettre en forme une date sur le modèle de jade
J'ai un index.js:
exports.index = function(req, res){
db.courses.find(function(err, currentCourses) {
res.render('index', {
currentCourses: currentCourses
});
});
};
Et sur mon modèle jade:
tr
td #{currentCourses[0].start}
Qui est une date formatée comme "Sun 29 Sep 2013 00:00:00 GMT+0100 (BST)".
Comment puis-je formater "29 Sep 2013"?
Edit (après Ed Hinchliffe les commentaires):
-function prettyDate(dateString){
-var d = date.getDate(dateString);
-var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
-var m = monthNames[date.getMonth()];
-var y = date.getFullYear();
-return d+' '+m+' '+y;
- }
for course in currentCourses
tr
td #{prettyDate(course.start)}
source d'informationauteur babbaggeii
Vous devez vous connecter pour publier un commentaire.
Pas particulièrement facile malheureusement. Vous aurez besoin d'une fonction pour formater une chaîne de caractères, soit à l'intérieur de votre modèle, ou à l'extérieur (et le passage le joli string).
Quelque chose comme ceci (JADE)
Ma solution est la suivante:
Ajouter momentjs à votre demande expresse des habitants comme ceci:
app.locals.moment = require('moment');
Alors vous pouvez utiliser l'instant en tout jade fichiers:
span='(Created at: ' + moment(obj.createTime).format("YYYY/MM/DD") + ')'
Référence:
Utilisation de l'utilitaire de bibliothèques à côté serveur Jade modèles
La solution ci-dessus à partir de Zhifeng Hu m'a donné la bonne direction. Malheureusement, app.les locaux.moment n'a pas fonctionné pour moi.
Mais vous pouvez passer à la
require('moment')
également directement dans l'objet pour le modèle attributs.Puis transmettre les données de l'objet comme d'habitude à la fonction de modèle.
Fichier Source exemple:
Vous devez formater la date de serveur-côté. Limiter le montant de la logique fait à l'intérieur du modèle de nu minimum, idéalement, rien du tout.