ruby ERB 比较日期
ruby ERB compare dates
我有一个网站使用 ruby (rhtml) 文件,我不习惯编辑这些文件(更习惯 php)。我只能访问这些文件进行编辑(因此不能访问后端)。
在数据库中我有一个可以显示的日期:
<%= zp.date %>
这将显示例如2010 年 10 月 14 日
我可以使用以下方法显示今天的日期:
<%= Date.today.strftime("%Y%m%d") %>
这将显示 20160122。
我正在努力解决的是如何比较日期并回应差异,进而显示不同的内容。
例如
compare <%= zp.date %> and <%= Date.today.strftime("%Y%m%d") %>.
If days difference is less than 20 echo XXX
else
If days difference between 20 - 40 echo XXX
else
If days difference between 41 - 60 echo XXX
将不胜感激(链接等),代码示例将不胜感激。
再次说明我只能编辑 rhtml。
日期可直接与 if-statements 进行比较,计算差异将显示它们之间的天数。假设 zp.date
是过去的:
<% date_difference = Date.today - zp.date %>
<% if date_difference < 20 %>
...
<% elsif date_difference <= 40 %>
...
<% elsif date_difference <= 60 %>
...
<% else %>
Difference is greater than 60
<% end %>
注意 <% %>
标签,用于 if-logic 和内部 Ruby 代码——基本上任何不应该输出的表达式(感谢@QPaysTaxes),而不是 <%= %>
这是输出标签。
如果不知道zp.date
是过去还是将来,可以用abs
的方法得到结果:
<% date_difference = (Date.today - zp.date).abs %>
如果 zp.date
实际上不是 Date
对象,那么 parse
它:
<% date_difference = (Date.today - Date.parse(zp.date)).abs %>
当日期字符串不明确时,旧 Ruby 版本将需要 strptime
:
<% date_difference = (Date.today - Date.strptime(zp.date, '%d/%m/%Y')).abs %>
我有一个网站使用 ruby (rhtml) 文件,我不习惯编辑这些文件(更习惯 php)。我只能访问这些文件进行编辑(因此不能访问后端)。
在数据库中我有一个可以显示的日期:
<%= zp.date %>
这将显示例如2010 年 10 月 14 日
我可以使用以下方法显示今天的日期:
<%= Date.today.strftime("%Y%m%d") %>
这将显示 20160122。
我正在努力解决的是如何比较日期并回应差异,进而显示不同的内容。
例如
compare <%= zp.date %> and <%= Date.today.strftime("%Y%m%d") %>.
If days difference is less than 20 echo XXX
else
If days difference between 20 - 40 echo XXX
else
If days difference between 41 - 60 echo XXX
将不胜感激(链接等),代码示例将不胜感激。
再次说明我只能编辑 rhtml。
日期可直接与 if-statements 进行比较,计算差异将显示它们之间的天数。假设 zp.date
是过去的:
<% date_difference = Date.today - zp.date %>
<% if date_difference < 20 %>
...
<% elsif date_difference <= 40 %>
...
<% elsif date_difference <= 60 %>
...
<% else %>
Difference is greater than 60
<% end %>
注意 <% %>
标签,用于 if-logic 和内部 Ruby 代码——基本上任何不应该输出的表达式(感谢@QPaysTaxes),而不是 <%= %>
这是输出标签。
如果不知道zp.date
是过去还是将来,可以用abs
的方法得到结果:
<% date_difference = (Date.today - zp.date).abs %>
如果 zp.date
实际上不是 Date
对象,那么 parse
它:
<% date_difference = (Date.today - Date.parse(zp.date)).abs %>
当日期字符串不明确时,旧 Ruby 版本将需要 strptime
:
<% date_difference = (Date.today - Date.strptime(zp.date, '%d/%m/%Y')).abs %>