Ruby on rails 在ruby或rails中减去日期

Ruby on rails 在ruby或rails中减去日期,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有以下资料: due_date = Date.parse '2020-07-18 00:00:00 -0700' today_date = Time.now (due_date - today_date).to_i 我首先将日期字符串(这是一个字符串,不是ActiveRecord datetime对象)转换为日期对象 然后我使用Time.now创建了一个新的日期对象,但是当我尝试减法时,我得到了一个错误: (请注意,我在Rails控制台中运行此操作): 我想我可以减去两个日期对象,得出天数差

我有以下资料:

due_date = Date.parse '2020-07-18 00:00:00 -0700'
today_date = Time.now
(due_date - today_date).to_i
我首先将日期字符串(这是一个字符串,不是ActiveRecord datetime对象)转换为日期对象

然后我使用Time.now创建了一个新的日期对象,但是当我尝试减法时,我得到了一个错误:

(请注意,我在Rails控制台中运行此操作):


我想我可以减去两个日期对象,得出天数差。有什么想法吗?

日期和时间不是同一个类,所以你不能从另一个中减去一个

尝试改用DateTime,或者使用
to_date
将时间强制为日期

due_date = DateTime.parse '2020-07-18 00:00:00 -0700'
today_date = DateTime.current
(due_date - today_date).to_i

还要小心使用Time.now,因为它不支持时区()

这是否回答了您的问题?不,但elilitt提供的答案很酷!很高兴这样做。这解决了问题。谢谢你,谢谢你给我的时间提示
due_date = DateTime.parse '2020-07-18 00:00:00 -0700'
today_date = DateTime.current
(due_date - today_date).to_i