【问题标题】:Fetch records as per current time zone of user根据用户当前时区获取记录
【发布时间】:2016-11-21 05:26:08
【问题描述】:

我的 Request 模型中有日期和时间字段,我当前的用户应该根据他当前的日期和时间看到请求(请求日期和时间未通过)。

@requests = Request.where([date >= ? and user_id = ? and time >= ?, Date.current, current_user.id, Time.current])

所以我要通过以下链接,从中我获得了有关如何从浏览器获取时区并将其存储在 cookie 中的信息。

http://thisbythem.com/blog/clientside-timezone-detection/

为了方便我使用了以下 gem 并检查了我的 cookie,这给了我我的时区。

https://github.com/kbaum/browser-timezone-rails

仍然无法按照我的时区工作,我还在服务器和本地计算机上对其进行了测试。 我可以看到那些超出我当前时间的记录。

【问题讨论】:

  • 你有什么问题?

标签: ruby-on-rails datetime ruby-on-rails-4 cookies


【解决方案1】:

找到解决方案这是我的查询中的逻辑错误,所以回答正确的查询:

  1. 日期和时间都是不同的字段,因此在查询“日期”和“时间”字段时,上述查询只会呈现今天和未来日期的记录,但在我当前时间之后。所以需要将“时间”字段更改为“日期和时间”,只需要通过“时间”字段的查询。例如。

    @requests = Request.where([user_id = ? and time >= ?, Date.current, current_user.id, Time.zone.now])

    gem "browser-timezone-rails" 有助于转换和保存 UTC 中的本地时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2018-04-13
    • 1970-01-01
    相关资源
    最近更新 更多