javascript - HandlebarsJS registerHelper 用于比较两个日期

标签 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}} 

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

非常感谢:-)

最佳答案

我认为你可以使用 momentjs的查询功能

那么你的助手会喜欢这样:

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

看这个fiddler

关于javascript - HandlebarsJS registerHelper 用于比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715805/

相关文章:

javascript - 值改变时输出文本颜色改变

javascript - Handlebars 动态字段名称

javascript - 编译后如何将事件监听器添加到 Handlebars 模板?

node.js - 将代码从 EJS 转换为 Handlebars

javascript - 帕雷尼佐是什么意思?

javascript - 使用 javascript/jQuery 访问具有使用 angular js 动态生成的 ids/属性的 html 元素

javascript - 您可以跨多个模板共享数据吗?

javascript - 试图屏蔽页面 : Postion Absolute & fixed ruin formatting

javascript - 单击其他列表项时淡出

javascript - 从选择类型中选择时如何刷新div而不是所有页面