如何在流星模板中格式化日期

时间:2014-02-28 06:32:01

标签: meteor handlebars.js

我需要以“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

3 个答案:

答案 0 :(得分:69)

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

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

然后你就可以使用它:

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

此解决方案依赖于moment,它是一个方便的日期操作库。如果您希望不使用片刻而生成字符串,可以使用this one来解决此问题。

答案 1 :(得分: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");
        }
    },

    })

答案 2 :(得分:2)

这是一个在Meteor中运行的解决方案,不依赖于另一个包:

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

这将返回格式为&#34; 2015年12月11日和#34;的日期字符串。移动getMonth()getDate()getFullYear()作为首选格式。有关更多格式选项,请查看Date object的其他方法。