在haml中查找两个日期之间的范围

Posted

技术标签:

【中文标题】在haml中查找两个日期之间的范围【英文标题】:finding range between two dates in haml 【发布时间】:2019-08-06 09:29:47 【问题描述】:

我在 haml 方面没有经验,目前我正在努力学习。下面是我的haml代码。我试图在日期范围等于 4 天或更多天时显示一个按钮。基本上要求是按钮在距离结束日期只有 4 天时被隐藏..

  - range = booking.start_on..booking.end_on
  - if range >= 4
    = link_to "#",
      class: 'btn-flat btn-flat-split',
      title: "Extend Booking",
      data:  method: request.primary_action.method  do
      = "Extend Booking"
      %i.icon-chevron-right

我收到此错误:

NoMethodError at /ideas/50114
undefined method `>=' for "06 Feb 2020".."20 Feb 2020":Range

我不能 100% 确定该范围是否得到正确的输出或正确声明..?

【问题讨论】:

【参考方案1】:

你有一个天的范围,这是一个没有实现>=方法的Range对象。

您需要获取每个日期对象之间的差异天数,为此使用to_date

p (booking.end_on.to_date - booking.start_on.to_date).to_i # 14

所以,对于你的情况:

- if (booking.end_on.to_date - booking.start_on.to_date).to_i >= 4
  ...

这是一个 Ruby 错误,而不是 Haml。

【讨论】:

我尝试了你的建议并得到了这个:undefined method `-' for "20 Feb 2020":String Did you mean? -@ 抱歉,我在纯 Ruby 环境中尝试过,但没有意识到这两个变量都是字符串。查看更新的答案。

以上是关于在haml中查找两个日期之间的范围的主要内容,如果未能解决你的问题,请参考以下文章

mysql日期范围查找(两个日期之间的记录)

在两个范围之间查找

MySQL:查找日期范围之间的缺失日期

从两组日期范围 C# 中查找间隔日期范围

SQL 查询日期范围保存在 2 列中

在codeigniter中获取两个日期范围之间的数据