在where语句和时区中创建



我正在尝试检索我的模型中当天的所有条目:

where('date(created_at) = date(?)', Date.today)

但是,由于时区的原因(我的当地时间是UTC+2),我没有预期的结果。例如,如果一个条目是在午夜后一分钟创建的,那么它将在22:01存储在数据库中(所以不是"Date.today")

有办法做到这一点吗?

编辑:

作为网站的管理员,我想在我的本地时间"今天"显示条目的数量(这只是为了统计目的!)。所以我想在utc中保存时间戳,但在这个请求期间将它们转换为我的本地时区!

您可以通过多种方式设置正确的时区。答案中描述了一个:

https://stackoverflow.com/a/6118837/567126

将以下内容添加到application.rb作品

config.time_zone='东部时间(美国和加拿大)'

where('date(created_at) = ?', Time.zone.now.to_date)

数据库中的时间应存储为UTC。这样,当你创建一个全球网站时,你可以为每个用户提供自己的时区。

UI(视图)负责显示用户本地时区中的时间。

对于您的位置,您应该使用Time.now.utc通过这种方式,您可以使用通用UTC搜索数据库。

相关内容

  • 没有找到相关文章

最新更新