ruby-on-rails - 在 Rails 中使用和比较相对时间

标签 ruby-on-rails function date relative-date

我需要知道如何在 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_ago1.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/

相关文章:

function - 如何转换函数类型?

JavaScript 返回函数而不是值

javascript - 如何在javascript中检查日期大于或小于的条件?

ruby-on-rails - gem --version 不同于 sudo gem --version :(

ruby-on-rails - 如何在 capistrano 中为 Sinatra 项目设置 rvm

ruby-on-rails - 设计/用户/确认路线

r - 转换数据框中的日期列

ruby-on-rails - 当值为 nil 时 Rails 继续缓存

JavaScript:使用名称和默认值设置对象参数的正确方法

python - 如何在 python 中解析多个(未知)日期格式?