在 Rails 中使用和比较相对时间
我需要知道如何在 Rails 中执行相对时间,但不是作为一个句子,更像是我可以做的事情(当我输入这样的格式 2008-08-05 23:48:04 -0400 时)
if time_ago < 1 hour, 3 weeks, 1 day, etc.
execute me
end
I need to know how to do relative time in rails but not as a sentence, more like something i could do this with (when i input format like this 2008-08-05 23:48:04 -0400)
if time_ago < 1 hour, 3 weeks, 1 day, etc.
execute me
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
基本相对时间:
比较:
使用
<
来查看time_ago
是否早于1.hour.ago
,以及>>
查看time_ago
是否比1.hour.ago
更新组合时间,并使用小数时间:
您可以组合时间,正如 davidb 提到的,并且做:
你也可以做小数秒,例如:
0.5.seconds.ago
没有
.milliseconds.ago
,因此如果您需要毫秒精度,只需将其分解为小数秒即可。也就是说,1 毫秒前是:.ago() 一般而言:
将
.ago
放在任何数字的末尾都会将该数字视为 #of 秒。您甚至可以在括号中使用分数:
注意:要使用分数,分子或分母必须是浮点数,否则 Ruby 会自动将答案转换为整数,并影响您的数学运算。
Basic relative time:
Comparison:
Use a
<
to see iftime_ago
is older than1.hour.ago
, and>
to see iftime_ago
is more recent than1.hour.ago
Combining times, and using fractional times:
You can combine times, as davidb mentioned, and do:
You can also do fractional seconds, like:
0.5.seconds.ago
There is no
.milliseconds.ago
, so if you need millisecond precision, just break it out into a fractional second. That is, 1 millisecond ago is:.ago() in general:
Putting
.ago
at the end of just about any number will treat the number as a #of seconds.You can even use fractions in paranthesis:
NOTE: to use fractions, either the numerator or denominator needs to be a floating point number, otherwise Ruby will automatically cast the answer to an integer, and throw off your math.
你的意思是……像这样?
You mean sth. like this?