如何在meteor模板中设置日期格式

如何在meteor模板中设置日期格式,meteor,handlebars.js,Meteor,Handlebars.js,我需要以“mm dd yyyy”格式显示数据库中的日期。由于它以ISO格式保存在mongodb中,如何在模板中转换它? 这是我的密码 Template.templatename.vname = function () { return Posts.find(); } 和在模板中 {{#each vname}} {{ date }} {{/each}} 现在它显示为2014年2月4日星期二00:00:00 GMT+0530(

我需要以“mm dd yyyy”格式显示数据库中的日期。由于它以ISO格式保存在
mongodb
中,如何在模板中转换它? 这是我的密码

       Template.templatename.vname = function () {      
        return Posts.find(); 
        }
和在模板中

{{#each vname}}
    {{ date }} 
{{/each}}
现在它显示为2014年2月4日星期二00:00:00 GMT+0530(IST)


我需要将其显示为
mm dd yyyy

您可能需要创建一个全局帮助器,如:

Template.registerHelper('formatDate',函数(日期){
返回时间(日期)。格式('MM-DD-YYYY');
});
然后你可以像这样使用它:

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

此解决方案取决于哪个是方便的日期操纵库。如果您希望在不使用矩的情况下生成字符串,有很多答案,其中包括。

以下是一个在Meteor中工作的解决方案,它不依赖于其他包:

// global helper
Template.registerHelper('formatDate', function(date) {
    return monthNames[date.getMonth()] + " " + date.getDate() + ", " + date.getFullYear();
});
这将返回格式为“2015年12月11日”的日期字符串。围绕首选格式移动
getMonth()
getDate()
getFullYear()
。要了解更多格式选项,请查看object的其他方法。

矩是一个很好的例子

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

    })
Template.home.helpers({
动量格式:函数(时间){
如果((矩().unix()-矩(时间).unix())<3600){
返回时刻(时间)。从现在开始();
}否则{
返回时刻(时间)。格式(“YYYY-MM-DD HH:MM”);
}
},
})

如果您想像我一样为每个模板中的日期设置自定义格式,可以执行以下操作
template.registerHelper('timeFormat',function(date,format){return moment(date).format(format);}){{timeFormat datetime“MM.DD/H:MM”}