Check if DateTime value is today, tomorrow or later

Something like...

datetime = Time.now.to_datetime
=> Sun, 26 Oct 2014 16:24:55 -0600 

datetime >= Date.today
=> true

datetime < Date.tomorrow
=> true

datetime += 1.day
=> Mon, 27 Oct 2014 16:25:12 -0600

datetime >= Date.today
=> true

datetime >= Date.tomorrow
=> true 

datetime < (Date.tomorrow + 1.day)
=> false

?


Here are some useful ways to achieve it:

datetime = DateTime.now  => Sun, 26 Oct 2014 21:00:00

datetime.today? # => true
datetime.to_date.past? # => false (only based on date)
datetime.to_date.future? # => false  (only based on date)

datetime.to_date == Date.tomorrow # => false
datetime.to_date == Date.yesterday # => false

yesterday? & tomorrow? (Rails 6.1+)

Rails 6.1 adds new #yesterday? and #tomorrow? methods to Date and Time classes.

As a result, now, your problem can be solved as:

datetime = DateTime.current
# => Mon, 16 Nov 2020 20:50:16 +0000


datetime.today?
# => true

datetime.yesterday?
# => false

datetime.tomorrow?
# => false

It is also worth to mention that #yesterday? and #tomorrow? are aliased to #prev_day? and #next_day?.

Here is a link to the corresponding PR.