Formatez une date à partir d'un gabarit de manette dans Meteor

J'ai eu une date formatée ISO de mes données et ce que je veux réellement faire, c'est de modifier mon format de date directement à partir de mes modèles.

comme ça:

{{format my.context.date "myFormat"}} 

J'utilise la bibliothèque du moment, afin que je puisse écrire quelque chose comme ça:

 {{formatDate my.context.date "DD.MM.YYYY HH:mm"}} // 03.09.2013 18:12 

Ce serait bien, car je pense que c'est l'endroit où je devrais pouvoir le faire. Dans mon modèle.

La solution est assez simple, et peut-être que quelqu'un le trouvera utile. Dans la plupart des projets, vous avez deux formats de date que vous souhaitez utiliser. C'est donc une bonne approche pour définir vos formats avec des noms lisibles.

Pour cet exemple, j'ai pris «short» et «long», mais vous verrez, il est très facile d'étendre.

J'ai donc créé un objet dans mon script client:

 var DateFormats = { short: "DD MMMM - YYYY", long: "dddd DD.MM.YYYY HH:mm" }; 

De plus, j'ai créé un Handlebars Helper "formatDate".

Edité: Maintenant, vous devez utiliser UI au lieu de Guidons

 // Deprecated since version 0.8.0 Handlebars.registerHelper("formatDate", function(datetime, format) { // Use UI.registerHelper.. UI.registerHelper("formatDate", function(datetime, format) { if (moment) { // can use other formats like 'lll' too format = DateFormats[format] || format; return moment(datetime).format(format); } else { return datetime; } }); 

Comme vous pouvez le voir, j'utilise moment.js lib dans mon Helper. Pour l'installer, tapez meteor add momentjs:moment de votre ligne de commande.

Et maintenant, partout dans mes modèles, je peux l'utiliser avec les deux paramètres, comme ceci:

 {{formatDate MyISOString "short"}} // 02 September - 2013 {{formatDate MyISOString "long"}} // Monday 02.09.2013 18:00 

Si vous souhaitez créer vos propres formats, regardez les documents du moment. http://momentjs.com/docs/

Bonne codage!