我有一个使用ruby(rhtml)文件的网站,我不习惯于对其进行编辑(更多用于php)。我只能访问这些文件进行编辑(而不是后端)。
在数据库中,我可以使用以下日期显示:
<%= zp.date %>
这将显示例如14/10/2010
我可以使用以下方式显示今天的日期:
<%= 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语句进行比较,计算日期差可以显示日期之间的天数。假设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 %>
strptime
如果日期字符串不明确,则需要较早的Ruby版本:
<% date_difference = (Date.today - Date.strptime(zp.date, '%d/%m/%Y')).abs %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句