2013-07-26 7 views
10

Podczas korzystania z uchwytów Meteor's Handlebar, jak przekonwertować wyjście {{ timestamp }} z Thu Jul 25 2013 19:33:19 GMT-0400 (Eastern Daylight Time) na Jul 25?Format daty w bransoletkach Meteor Handlebars {{timestamp}}

Tried {{ timestamp.toString('yyyy-MM-dd') }} ale dał błąd

+4

Uwaga: Standardowa [ 'toString()' dla 'Date's] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString) ignoruje wszelkie przekazane do niego argumenty, a ECMAScript nie definiuje żadnych innych metod, które mogą sformatować 'Date' w oparciu o' String' jak ''rrrr-MM-dd''. Jeśli nie masz jeszcze biblioteki, która modyfikuje 'toString()', zajrzyj na http://stackoverflow.com/q/1056728 po sugestie. –

+0

tutaj jest lepszy opis, jak to zrobić -> http://stackoverflow.com/questions/18580495/format-a-date-od--podstawą--płytek-template-in-meteor –

Odpowiedz

37

użyć kierownica pomocnik:

Template.registerHelper("prettifyDate", function(timestamp) { 
    return new Date(timestamp).toString('yyyy-MM-dd') 
}); 

Następnie w html:

{{prettifyDate timestamp}} 

Jeśli używasz chwila:

Template.registerHelper("prettifyDate", function(timestamp) { 
    return moment(new Date(timestamp)).fromNow(); 
}); 
+6

Jak wspomniano powyżej @ JonathanLonowski, jest to warto zauważyć, że 'timestamp.toString()' zignoruje wszelkie przekazywane do niego argumenty. Uważam, że za pomocą MomentJS wszystko to jest niezwykle proste. – Spencer

+3

toDateString() działa w skróconym formacie. – user592419

+0

@Akshat, zwróć uwagę, że po kilku przerzuceniach, składnia jest teraz ['Template.registerHelper'] (http://docs.meteor.com/#/full/template_registerhelper) – KyleMit

1

To wor ked dla mnie

Handlebars.registerHelper("prettifyDate", function(timestamp) { 
    return (new Date(timestamp)).format("yyyy-MM-dd"); 
}); 
+1

To nie dodaje nic do zaakceptowanej odpowiedzi . –

+0

Nie wiem, ale jak pamiętam, to nie było dla mnie. – user965884

+0

i powyższa odpowiedź została zaktualizowana po mojej odpowiedzi. – user965884

1

To działa dla mnie.

toString ("yyyy-MM-dd") - nie konwertuje.

Template.registerHelper("prettifyDate", function(timestamp) { 
    var curr_date = timestamp.getDate(); 
    var curr_month = timestamp.getMonth(); 
    curr_month++; 
    var curr_year = timestamp.getFullYear(); 
    result = curr_date + ". " + curr_month + ". " + curr_year; 
    return result; 
});