2014-02-28 81 views
30

我需要以'mm-dd-yyyy'格式顯示數據庫中的日期。由於它在mongodb中以ISO格式保存,我怎樣才能在模板中進行轉換? 這是我的代碼。如何格式化流星模板中的日期

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

而且在模板

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

現在它越來越顯示像Tue Feb 04 2014 00:00:00 GMT+0530 (IST)

我需要它顯示爲mm-dd-yyyy

回答

65

您可能希望創建這樣一個全球性的幫手:

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

然後你可以使用它像:

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

這個解決方案取決於moment這是一個方便的日期處理庫。如果你更喜歡不使用時刻來製作字符串,這裏有很多答案,包括this one

+0

感謝大衛迎接.. :) –

+4

如果要設置日期自定義格式在每個模板像我一樣,你可以做這樣的事情''Template.registerHelper('timeFormat',function(date,format){ return moment(date).format(format); });'然後在模板中:'{{timeFormat datetime「MM.DD/H:mm」}}' –

+0

實際上有已經有一個幫手叫它。 #winning! –

2

這裏是流星,沒有任何依賴於其他軟件包有效的解決方案:

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

這將返回格式化爲「2015年12月11日」的日期字符串。根據您的首選格式移動getMonth()getDate()getFullYear()。有關更多格式選項,請查看Date對象的其他方法。

6

時刻LIB

meteor add momentjs:moment 

使用時刻幫手

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

    })