HandlebarsJS registerHelper用于比较两个日期

时间:2014-11-03 13:54:35

标签: javascript handlebars.js

我想创建一个帮助程序,我可以在其中比较彼此之间的两个日期,并且取决于是否已经过某个日期来显示特定的HTMl元素。我有一些数据,我从一个包含“日期”字段的远程JSON收到。例如:

data: {
   date: "2014-10-04",
   event: "some past event,
}, {
  date: "2014-12-06",
  event: "some future event,
...

所以,如果日期过去了,我想要隐藏HTML或将其存档,以及我想要显示的即将发生的事件。到目前为止,我试过这个:

Handlebars.registerHelper('has_passed', function(dateString, options) {
    var current_date = moment(dateString).format("YYYY-MM-DD").toUpperCase(); // The current date
    if(current_date> WHAT HERE???) {
       return options.fn(this);  // if current date is "bigger" than the passed date show html
    }
});     

我的HTML现在看起来就像这样

{{#has_passed date}}
    <div>
        <h1>blablabla</h1>
    </div>
{{/has_passed}} 

显然,这不起作用所以任何人都可以帮助我吗?

非常感谢: - )

1 个答案:

答案 0 :(得分:1)

我认为您可以使用 momentjs

的查询功能

然后你的助手会这样:

Handlebars.registerHelper("has_passed", function(dateString, options) {
  if(moment(dateString).isAfter(moment())){
    return options.fn(this);
  } else {
    return options.inverse(this);
    }
});

请参阅此fiddler