2014-02-28 42 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"); 
     } 
    }, 

    })