红宝石中日期的难以理解的行为

时间:2014-06-16 11:35:49

标签: ruby

我有一个变量,它有一些未来的日期(例如我在这里的日期后30天),我希望有一个条件语句,如果这个未来的日期提前10天,我试着跟随代码,但是它不起作用,我在这里做错了什么?

> future_date = Date.today + 30.day
 => Wed, 16 Jul 2014
> future_date - Date.today > 10.day
 => false      # Shouldn't this has been true

1 个答案:

答案 0 :(得分:1)

future_date - Date.today将始终在几天(30)

给您答案

你可以通过

看到这一点
future_date - Date.today
=> 30

所以你可以......

future_date - Date.today > 10

这样可以正常工作。

10.days将间隔转换为秒:864_000(十天内的秒数),30不大于864_000!