在Rails应用程序中记录时间段的好方法是什么,以便我可以轻松地将它们用于计算?

时间:2013-09-11 19:39:08

标签: ruby-on-rails ruby datetime

我有时间段:

  • 2年
  • 1个月
  • 4天

我想将它们添加到我的数据库中的现有记录中,以便我可以轻松地将它们用于计算?我需要的计算类型是[time_period] - (Time.now - [datetime]),以便查看剩余的时间段。

由于我的期间非常标准,我想将时间段保存为字符串“2年”,“1个月”,“4天”等,并在使用时拆分。例如,“4天”可能会变成这样:

4.send("days".to_sym)

您如何看待这种方法?有更好的想法吗?

2 个答案:

答案 0 :(得分:1)

好的,我有更好的解决方案。

Here is the Class TimeDuration

five_minutes = TimeDuration.new("5 min")
five_minutes + Time.now

Time.now
# => 2013-09-13 02:50:06 +0200
five_minutes + Time.now
# => 2013-09-13 02:55:13 +0200

答案 1 :(得分:-1)

最好以标准格式存储所有内容;像秒一样,这样你就可以轻松地进行计算而无需先进行转换。如果您还存储了某种单位字段(即年,日,分,秒),则可以轻松地将秒数转换回适当的单位进行显示 - 有点像上面所示。

stored_value_in_minutes = stored_value.seconds / 1.minutes