我有这样的时间段:
- 2年
- 1个月
- 4天
我想以一种可以轻松使用它们进行计算的方式将它们添加到我的数据库中的现有记录中?我需要的计算类型是 [time_period] - (Time.now - [datetime]) 以便查看还剩多少时间段。
由于我的时间段非常标准,我想将时间段保存为字符串“2 年”、“1 个月”、“4 天”等,并在使用时拆分它们。例如“4-days”可能变成这样:
4.send("days".to_sym)
你觉得这个方法怎么样?有更好的想法吗?
我有这样的时间段:
我想以一种可以轻松使用它们进行计算的方式将它们添加到我的数据库中的现有记录中?我需要的计算类型是 [time_period] - (Time.now - [datetime]) 以便查看还剩多少时间段。
由于我的时间段非常标准,我想将时间段保存为字符串“2 年”、“1 个月”、“4 天”等,并在使用时拆分它们。例如“4-days”可能变成这样:
4.send("days".to_sym)
你觉得这个方法怎么样?有更好的想法吗?
好的,我有更好的解决方案。
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
最好以标准化格式存储它们;像秒一样,这样您就可以轻松地进行计算,而无需先进行转换。如果您还存储了某种单位字段(即年、日、分钟、秒),那么您可以轻松地将秒转换回适当的单位进行显示 - 有点像上面的内容。
stored_value_in_minutes = stored_value.seconds / 1.minutes