2014-02-28 11 views
30

Ich muss ein Datum aus der Datenbank im Format 'mm-dd-yyyy' anzeigen. Wie kann ich es im ISO-Format in mongodb speichern, wie kann ich es in der Vorlage konvertieren? Hier ist mein Code.Wie formatiere ich Datum in Meteor-Vorlage

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

Und in Vorlage

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

Jetzt sein wie Tue Feb 04 2014 00:00:00 GMT+0530 (IST)

angezeigt bekommen ich zeigen, müssen sie als mm-dd-yyyy

Antwort

65

Sie einen globalen Helfer erstellen möchten wie:

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

Dann können Sie es gerne verwenden:

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

Diese Lösung hängt von moment, die eine praktische Datum Manipulation Bibliothek ist. Wenn Sie die Zeichenfolge ohne Moment erzeugen möchten, gibt es dafür eine Reihe von Antworten, einschließlich this one.

+0

Dank David lib .. :) –

+4

Wenn Sie ein benutzerdefiniertes Format für das Datum in jeder Vorlage festlegen möchten wie ich , können Sie etwas tun wie 'Template.registerHelper (' timeFormat ', Funktion (Datum, Format) { Rückkehr Moment (Datum) .format (Format); }); 'und dann in der Vorlage:' {{timeFormat datetime "MM.DD/H: mm"}} ' –

+0

hatte eigentlich Ein Helfer hat das schon genannt. # Gewinnen! –

2

Hier ist eine Lösung, die ohne Abhängigkeit von einem anderen Paket in Meteor funktioniert:

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

Dies wird ein Datum String zurück als „11. Dezember 2015“ formatiert. Bewegen Sie sich um getMonth(), getDate() und getFullYear() für Ihr bevorzugtes Format. Weitere Formatierungsoptionen finden Sie in den anderen Methoden des Objekts Date.

6

Moment ist ein greet

meteor add momentjs:moment 

Verwendung Moment in Helfer

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"); 
     } 
    }, 

    }) 
Verwandte Themen