Ruby on rails 如何在Rails中一步将X个月转换为Y天?
我将一个配置值存储为Ruby on rails 如何在Rails中一步将X个月转换为Y天?,ruby-on-rails,Ruby On Rails,我将一个配置值存储为3.months,另一个从计算返回的值存储为7.days 我需要找出他们的不同之处。什么是使它们正常化的最简单和最容易的方法,这样我就可以从3.个月中减去7.天?我可以使用.to_I将.month转换为天,乘以一天中的秒数,但这样从月到秒再到天的计算感觉相当冗长: x = (3.months.to_i/86400).days => 90 days x - 7.days => 83 days 有更快捷的方法吗?不确定是否更好,但: end_date
3.months
,另一个从计算返回的值存储为7.days
我需要找出他们的不同之处。什么是使它们正常化的最简单和最容易的方法,这样我就可以从3.个月中减去7.天
?我可以使用.to_I将.month转换为天,乘以一天中的秒数,但这样从月到秒再到天的计算感觉相当冗长:
x = (3.months.to_i/86400).days
=> 90 days
x - 7.days
=> 83 days
有更快捷的方法吗?不确定是否更好,但:
end_date = Date.today.advance(months: 3) - 7.days
(end_date - Date.today).to_i #=> 83
如果我理解正确,你可以这样从另一个中减去它们:
(3.months - 7.days)/86400 #=> 83
月和日方法都返回秒的整数。如果您想将每个术语保留为时间单位,我建议:
(3.months - 7.days)/1.day
我觉得对于另一个开发人员来说,这是最干净、最容易理解您想要描述的内容。有趣的是,3.months.days
是有效的,但与直觉相反(甚至是无效的?),考虑到输出:7776000天
(3.months-7.days)/86400天