Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4:按日期和时区分组_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails 4:按日期和时区分组

Ruby on rails Rails 4:按日期和时区分组,ruby-on-rails,Ruby On Rails,我正试图获得每天切割的激光片数量,以便在图表中使用 pages\u controller.rb: start_date = 7.days.ago recent_cut_stats = LaserSheet.where('cut_at IS NOT NULL') .where('cut_at > ?', start_date.beginning_of_day) .group("

我正试图获得每天切割的激光片数量,以便在图表中使用

pages\u controller.rb:

start_date = 7.days.ago
recent_cut_stats = LaserSheet.where('cut_at IS NOT NULL')
                             .where('cut_at > ?', start_date.beginning_of_day)
                             .group("DATE(cut_at)")
                             .count

我遇到了问题,因为我的站点的其余部分使用了
application.rb
中设置的时区,但上面的查询返回的结果按UTC时间的日期分组。太平洋标准时间下午5:00(UTC-0700)后,我开始看到明天的结果。有没有办法将
组(“日期(cut_at)”
转换为应用程序的时区?

正如上面的评论所建议的,您需要使用SQL数据库转换日期:

start_date = 7.days.ago
recent_cut_stats = LaserSheet.where('cut_at IS NOT NULL')
                             .where('cut_at > ?', start_date.beginning_of_day)
                             .group("DATE(CONVERT_TZ(cut_at, 'UTC','<name of time zone>'))")
                             .count
时区名称:

如果您使用的是MySQL,请查看
config.time_zone  = '<name of time zone>'
.group("DATE(created_at at time zone 'utc' at time zone 'Europe/Amsterdam')").count