我需要知道如何在 Rails 中做相对时间而不是作为一个句子,更像是我可以用它做的事情(当我输入这样的格式时 2008-08-05 23:48:04 -0400)
if time_ago < 1 hour, 3 weeks, 1 day, etc.
execute me
end
最佳答案
基本相对时间:
# If "time_ago" is more than 1 hour past the current time
if time_ago < 1.hour.ago
execute_me
end
比较:
使用 <
看看是否time_ago
早于 1.hour.ago
, 和 >
看看是否time_ago
比 1.hour.ago
更新
组合时间,并使用小数时间:
你可以像 davidb 提到的那样结合时间,然后做:
(1.day + 3.hours + 2500.seconds).ago
你也可以做小数秒,比如:
0.5.seconds.ago
没有.milliseconds.ago
,因此如果您需要毫秒精度,只需将其分解为小数秒即可。即1毫秒前是:
0.001.seconds.ago
.ago() 一般情况:
放 .ago
在几乎任何数字的末尾都会将该数字视为#of 秒。
您甚至可以在括号中使用分数:
(1/2.0).hour.ago # half hour ago
(1/4.0).year.ago # quarter year ago
注意:要使用分数,分子或分母必须是 float ,否则 Ruby 会自动将答案转换为整数,并抛出你的数学题。
关于ruby-on-rails - 在 Rails 中使用和比较相对时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808561/