使用datetime获取记录

时间:2014-11-03 14:29:43

标签: ruby-on-rails ruby-on-rails-3 mongoid

我有以下记录:

[#<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

但我什么都没得到。我做错了什么,因为我在这个日期时间之间有记录。

提前感谢您的帮助

1 个答案:

答案 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))