具体来说:我有一个计划模型,一个人可以每天在同一时间安排一个事件。像这样:
class Schedule
include Mongoid::Document
include Mongoid::Timestamps
field :hour, :type => Integer, :default => 8
field :ampm, :type => String, :default => "am"
field :time_zone, :type => String, :default => "Eastern Time (US & Canada)"
field :monday, :type => Boolean, :default => true
field :wednesday, :type => Boolean, :default => true
field :friday, :type => Boolean, :default => true
field :tuesday, :type => Boolean, :default => false
field :thursday, :type => Boolean, :default => false
field :saturday, :type => Boolean, :default => false
field :sunday, :type => Boolean, :default => false
embedded_in :user
end
我有一个每小时运行的 rake 任务,我只想查询所有需要和事件“现在”的时间表。因此,例如,如果是星期一的中午 UTC,则结果中应包含 :timezone => EST 和 :hour => 7 的时间表,以及 :timezone => PST 和 :hour => 4 的时间表。这当然,在世界标准时间星期二凌晨 1 点时会更加棘手,因为那是太平洋标准时间/东部标准时间的星期一。
我想过只是将时间标准化,以便每个人都使用 UTC,但这会给我的日子造成混乱,因为有人可能会在周三晚上 11 点安排一些事情,这实际上是 UTC 周四,所以“标准化”将成为用户的总皮塔以他们的调度程序形式选择与我们存储在数据库中的日期不对应。
我正在使用 mongoid 以防有人有特定的 mongoid 解决方案。