我有这些日期和时间:
schedule.day_start # => 2014-09-27 15:30:00 UTC date_now = Time.now # => 2014-09-27 15:11:14 +0200 date_now + 60.minutes # => 2014-09-27 16:11:14 +0200
我试图检测在day_start之前60分钟或更短时间内开始的所有计划.使用以下代码,我得到“NO”而不是“YES”作为响应.
if schedule.day_start < (Time.now + 60.minutes) "YES" else "NO" end
为什么2014-09-27 15:30:00 UTC比2014-09-27 16:11:14 0200更大?
解决方法
将它们作为UTC日期工作,这样可以避免出现时区问题
if schedule.day_start.utc < (Time.now + 60.minutes).utc ...