【发布时间】:2012-07-26 20:22:18
【问题描述】:
我有一个有两个参数的类:start_date 和 end_date。
它们的格式类似于 - 2012-07-12 和 2012-07-24。
我要从start_date 中减去end_date。
以前的谷歌搜索让我兴奋不已。我应该将这些转换为其他东西来做减法吗?
【问题讨论】:
标签: ruby-on-rails ruby datetime date
我有一个有两个参数的类:start_date 和 end_date。
它们的格式类似于 - 2012-07-12 和 2012-07-24。
我要从start_date 中减去end_date。
以前的谷歌搜索让我兴奋不已。我应该将这些转换为其他东西来做减法吗?
【问题讨论】:
标签: ruby-on-rails ruby datetime date
将它们转换为日期并减去它们:
require 'date'
start_date = Date.parse('2012-07-12')
end_date = Date.parse('2012-07-24')
(start_date - end_date).to_i
=> -12
【讨论】:
如果您想要(end_date-start_date).days 的天数应该可以正常工作。您可能会得到 Rational 天数,在这种情况下,您可以使用 to_i
【讨论】:
如果我不是 miskaten,参数以 String 的形式出现,因此您必须将其转换为 Date、DateTime 或 Time 才能对它们进行数学运算。
您可以参考这个问题了解更多详情。
How can I find the number of days between two Date objects in Ruby?
【讨论】:
你可以只减去两个 DateTime 对象
使用 1.9
require 'date'
DateTime.parse(end_date) - DateTime.parse(start_date)
【讨论】: