2013-03-10

Date.todayとtoday?が仲悪いっぽい

Date.today.today? => false

Date.today => 2013-03-11
(Date.current.beginning_of_month + 14) => 2013-03-10
(Date.current.beginning_of_month + 14).today => true

Date.todayがRailsではなくRuby上で実装されていることがこの矛盾している実行結果に表れているようだ。 Date.todayではなくDate.currentだとRailsと相性もよいらしい。

https://github.com/rails/rails/issues/759

railsのタイムゾーン設定を変更したら直った。 config/application.rbをちょっといじってみる

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
config.time_zone = 'Tokyo'