Ruby日期今天? - 意外的行为

时间:2015-06-01 03:29:09

标签: ruby-on-rails ruby date

我是Ruby的新手,我正在试图弄清楚以下为什么不按预期工作:

2.2.1 :010 > user_date = Date.today
 => Sun, 31 May 2015 
2.2.1 :011 > user_date.today?
 => false 

我使用Rails控制台并且命令一个接一个地执行(执行之间可能有一秒钟)。我确定我不理解,但不应该第二个命令返回true而不是false?如果没有,为什么? 提前谢谢!

编辑#1 - Arup要求的其他信息

 2.2.1 :013 > puts user_date.method(:today?).owner
DateAndTime::Calculations
 => nil 

编辑#2 - 所以我有预感。我在美国东部时间,当我遇到原始问题时,它已经到了午夜。我等了午夜,现在以下工作。

2.2.1 :004 > user_date = Date.today
 => Mon, 01 Jun 2015 
2.2.1 :005 > user_date.today?
 => true 

1 个答案:

答案 0 :(得分:7)

Date.today属于核心Ruby而today?属于Rails。

Under the hoodtoday?调用Date.current(也称为Rails)而不是Date.today

Going a bit further,如果配置了Date.current,我们会发现styleClass将当前的Rails时区考虑在内。这应该是你不匹配的根源。