我从ActiveSupport::Duration
(Rails 4.2.4 + ruby 2.2.1)中理解这一点:
main > (1.month + 2.days).parts
[[:months, 1], [:days, 2]]
我不明白这一点:
main > (1.hour + 35.minutes).parts
[[:seconds, 3600], [:seconds, 2100]]
ActiveSupport::Duration
处理数月和数天的处理时间和秒数是否都不合理? ActiveSupport::Duration
上的文档相当稀疏(我似乎无法找到更好的文档)。
我的主要目标是在Rails模型中存储持续时间(小时和分钟)。我应该忘记ActiveSupport::Duration
并只存储秒,然后进行自己的计算吗?
答案 0 :(得分:1)
ActiveSupport与小时,分钟和秒分开处理数月和日(和年)。
这是因为一小时(或23分钟)的持续时间始终是精确的秒数。另一方面,一个月是不同的天数,一天可以有23,24或25小时,具体取决于夏令时的变化。
听起来你不需要这个功能,在这种情况下,存储几秒钟可能更简单。