我有一个循环来为明天选择“LibrarySwaps”。
这有效,但当我将 days_ahead 默认设置为 1 时无效(它返回具有今天日期的记录)。
为什么我需要在日期上加 2 才能得到一天而不是 future 只有 1 天? 我在美国东部时间上午 11 点做这件事,所以这不是时区问题,UTC 都是同一天……我想也许是因为一侧有时间成分而另一侧没有,但不,我正在使用date() 对于 sql 和 Date + 1.days 对于 ruby。我可能会切换到(一个日期减去另一个日期)并查看结果。
谢谢!
Returns Tomorrows (uses 2):
def self.find_future_swaps(days_ahead=2)
@upcoming_swaps = LibrarySwap.all(:conditions => ['date(suggested_date) = ?',Date.today + days_ahead.day ])
end
Returns Todays (uses 1):
def self.find_future_swaps(days_ahead=1)
@upcoming_swaps = LibrarySwap.all(:conditions => ['date(suggested_date) = ?',Date.today + days_ahead.day ])
end
最佳答案
MySQL 可能以 UTC 格式存储您的 suggested_date
字段。因此,从 4 月 29 日晚上 10 点开始的条目实际上将存储为 4 月 30 日凌晨 3 点(假设您在东部时区)。
您可以这样做以将偏移量添加到您正在搜索的时间:
@upcoming_swaps = LibrarySwap.all(:conditions => ['date(convert_tz(suggested_date,'+00:00','-05:00')) = ?',Date.today + days_ahead.day ])
关于mysql - rails 电子邮件发送代码明天需要 days + 2,这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833690/