【问题标题】:Incorrect dates in ChartkickChartkick 中的日期不正确
【发布时间】:2014-07-24 23:40:23
【问题描述】:

Chartkick gem 将值放置在数据输入之后一天。

{Tue, 15 Jul 2014 00:00:00 UTC +00:00=>1, Wed, 16 Jul 2014 00:00:00 UTC +00:00=>0, Thu, 17 Jul 2014 00:00:00 UTC +00:00=>0, Fri, 18 Jul 2014 00:00:00 UTC +00:00=>0, Sat, 19 Jul 2014 00:00:00 UTC +00:00=>0, Sun, 20 Jul 2014 00:00:00 UTC +00:00=>0, Mon, 21 Jul 2014 00:00:00 UTC +00:00=>5} 

折线图上的第一个点标记为第14个,最后一个标记为第20个??

我已经仔细检查了系统上的日期,并确保我发送了正确的数据并且一切看起来都是正确的。以上数据集直接来自页面上的html。

【问题讨论】:

  • 你在使用 Rails 并且 config.time_zone 设置为 'UTC' 以外的值吗?如果是这样,Rails 会将时间转换为您配置的时区。
  • application.rb 有 config.active_record.default_timezone = :utc Time.zone.name => "UTC"
  • 基于这个 charkick 问题 (github.com/ankane/chartkick/issues/91),它可能正在将值从 UTC 转换为您当地的时区。
  • 你是一个学者和绅士,添加离散格式解决了这个问题。

标签: ruby chartkick


【解决方案1】:

我的 area_chart 遇到了同样的问题,并点击了来自 @Cisuuable 答案的链接。但是为了使输出与视图中的 UTC 匹配,我不必传递离散值:true。我刚刚使用了 groupdate gem 的格式变量:

groupdate gem info 在“Pretty keys”标题下

指定格式采用一个字符串,该字符串传递给 strftime 或 Proc。于是我访问了strftime reference

为了让我在视图中的日期回到 UTC,我更改了

<%= area_chart @visits.group_by_day(:created_at).count %>

<%= area_chart @visits.group_by_day(:created_at, format: "%B %d, %Y").count %>

【讨论】:

  • 这解决了我的问题,但在我的情况下,我在生产环境中看到了一个时间戳(2016 年 7 月 11 日上午 12:00:00),而在我的开发环境中没有看到(2016 年 7 月 11 日)。知道什么可以解决这个问题吗?谢谢你的帮助!我很高兴现在是正确的一天。
  • 您可能需要调整您的rails中的时间设置config/application.rb
【解决方案2】:

嘿,我遇到了同样的问题,答案在 Associations with Chartkick & Rails 中,这完全是关于将 group_by_day 更改为 group,因为它是在对该主题的评论中写的。希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多