【问题标题】:Rails 3 TimeZone ProblemsRails 3 时区问题
【发布时间】:2011-09-19 08:51:39
【问题描述】:

我的 Rails 应用程序有问题。

我将所有内容都保留在标准 Rails 配置中,因此没有设置 config.time_zone,...

现在的问题是: 鉴于我有一个这样的数据库条目:

 c = Client.first
 => #<Client id: 1, short: "Test", last_connected_at: "2011-06-21 09:22:58">

现在我生成一个时间对象:

t = Time.zone.parse("2011-06-21 09:22:58")

仔细检查:

c.last_connected_at
=> Tue, 21 Jun 2011 09:22:58 UTC +00:00
t
=> Tue, 21 Jun 2011 09:22:58 UTC +00:00

所以它是相同的,但是

c.last_connected_at == t => false

为什么???这使得按日期查找数据库行变得非常困难。

非常感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 activerecord timezone


    【解决方案1】:

    这是一个警告。根据ruby-docs

    所有时间都可能有分数。请注意这个事实,当 相互比较时间——显然相等的时间 比较时显示的时间可能会有所不同。

    c.last_connected_at.to_i == t.to_i 应该可以工作。

    【讨论】:

    • 嗯,这适用于 Ruby 比较。但现在我想做一个查找,如下所示:Client.where(["last_connected_at = ?", t"]) 不起作用。我没有得到任何结果。
    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 2012-02-27
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多