0

我正在提取每小时数据,将其缓存,然后在 javascript 滚动条中使用该数据。无论如何。这是主要问题。我在用着:

config.time_zone = 'Eastern Time (US & Canada)'

好的看起来不错,当我这样做时:

Entry.first.created_at #datetime -0500

看起来不错,但不是在我使用以下范围时

  scope :hourly, lambda {|h|
    g = DateTime.current.beginning_of_day + h.hours
    where(created_at: g..g+1.hours)
  }
  scope :hourly_by_date, lambda {|h,date|
    g = DateTime.parse(date + " 00:00:00 Eastern Time (US & Canada)") + h.hours
    where(created_at: g..g+1.hours)
  }
  scope :hours_ago, lambda {|h|
    g = DateTime.current.beginning_of_hour - h.hours
    where(created_at: g..g+1.hours)
  }

它显示的东西说它是在午夜之前/之后创建的,当我在下午 6:06 (-0700) 创建记录时,这真是令人沮丧,我可以使用一些指导。

谢谢。

4

1 回答 1

0

您如何将日期时间转换为 utc 并将值与数据库进行比较

 scope :hourly, lambda {|h|
    g = (DateTime.current.beginning_of_day + h.hours).utc
    where(created_at: g..g+1.hours)
  }
  scope :hourly_by_date, lambda {|h,date|
    g = (DateTime.parse(date + " 00:00:00 Eastern Time (US & Canada)") + h.hours).utc
    where(created_at: g..g+1.hours)
  }
  scope :hours_ago, lambda {|h|
    g = (DateTime.current.beginning_of_hour - h.hours).utc
    where(created_at: g..g+1.hours)
  }
于 2013-06-27T02:28:16.083 回答