web-dev-qa-db-fra.com

Comment formater la date dans le modèle de météore

Je dois afficher une date de la base de données au format "mm-jj-aaaa". Comme il est enregistré au format ISO dans mongodb comment puis-je le convertir dans le modèle? Voici mon code.

       Template.templatename.vname = function () {      
        return Posts.find(); 
        }

Et dans le modèle

{{#each vname}}
    {{ date }} 
{{/each}}

Maintenant, il s'affiche comme Tue Feb 04 2014 00:00:00 GMT+0530 (IST)

Je dois l'afficher sous la forme mm-dd-yyyy

32
I'm nidhin

Vous voudrez peut-être créer un assistant global comme:

Template.registerHelper('formatDate', function(date) {
  return moment(date).format('MM-DD-YYYY');
});

Ensuite, vous pouvez l'utiliser comme:

{{#each vname}}
  {{formatDate date}}
{{/each}}

Cette solution dépend de moment qui est une bibliothèque de manipulation de date pratique. Si vous préférez produire la chaîne sans utiliser moment, il existe un certain nombre de réponses pour cela, y compris celui-ci .

69
David Weldon

le moment est une lib salue

meteor add momentjs:moment

utiliser le moment dans l'aide

Template.home.helpers({
    momentFormate: function(time) {

        if ((moment().unix() - moment(time).unix()) < 3600) {
            return moment(time).fromNow();
        } else {
            return moment(time).format("YYYY-MM-DD HH:mm");
        }
    },

    })
6
user5699596

Voici une solution qui fonctionne dans Meteor sans aucune dépendance avec un autre package:

// global helper
Template.registerHelper('formatDate', function(date) {
    return monthNames[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();
});

Cela renverra une chaîne de date au format "11 décembre 2015". Déplacez-vous getMonth(), getDate() et getFullYear() pour votre format préféré. Pour plus d'options de mise en forme, consultez d'autres méthodes de l'objet Date .

2
Sawant