我有以下记录:
[#<Availability _id: 54574c7220db9004720001d4, _type: nil, created_at: 2014-11-03 09:35:46 UTC, updated_at: 2014-11-03 09:35:46 UTC, availability_date: 2014-11-03 15:30:00 UTC, end_availability_date: 2014-11-03 16:30:00 UTC, kid_id: BSON::ObjectId('537c63ea20db9040d2000332')>]
我正在尝试使用以下代码获取记录:
@availability = Availability.where(:availability_date.gte => DateTime.now.to_datetime.in_time_zone("Madrid")).and(:availability_date.lte => DateTime.now.to_datetime.in_time_zone("Madrid") + 20.minutes).to_a
我也尝试过:
@availability = Availability.where(:availability_date.gte => DateTime.now.to_datetime.in_time_zone("Madrid"), :availability_date.lte => DateTime.now.to_datetime.in_time_zone("Madrid") + 20.minutes).to_a
但我什么都没得到。我做错了什么,因为我在这个日期时间之间有记录。
提前感谢您的帮助
答案 0 :(得分:1)
日期始终以UTC格式存储在数据库中。你为什么要改变时区?就个人而言,我会使用范围。
now = Time.current
@availability = Availability.where(availability_date: now..(20.minutes.from_now(now)))
或
now = Time.current
@availability = Availability.where(availability_date: now..(now + 20.minutes))