Lazy Highcharts DateTime格式

时间:2014-08-24 22:50:33

标签: ruby-on-rails datetime highcharts ruby-on-rails-3.2

我正在使用懒惰的Highcharts来实现一些json数据,当我导入该数据时,它会读取日期,但不是时间。我的日期时间为'2014-08-11T11:30:00 + 00:00',但高排行榜的读数为'2014-08-11T00:00:00 + 00:00'。我已经尝试strftime("%d/%m/%Y %H:%M")来匹配格式,但是给了我错误:undefined method年'代表“11/08/2014 11:30”:字符串`

控制器

dates = []
temps = []
dt = []

@data['data'].flatten.each do |data|
  dates << data.keys
  temps << data.values
end

dates.flatten.each do |date|
  dt << DateTime.parse(date)
end

@start = dt.first

@graph = LazyHighCharts::HighChart.new('graph') do |f|
  f.series(:type => 'line', :name => 'Temperature', data: temps, pointStart: @start, :pointInterval => 30.minutes )
  f.xAxis [ type: "datetime" ]
end

enter image description here

2 个答案:

答案 0 :(得分:0)

你能把你在哪里调用strftime吗?我想如果你做了

dt << DateTime.parse(date).strftime("%d/%m/%Y %H:%M")

一切都应该正常,因为错误看起来就像你试图在字符串上调用strftime

答案 1 :(得分:0)

这可能有点晚了,但我可以使用dateTimeLabelFormatsdatetime类型来获得正确的格式。

f.xAxis(type: 'datetime', 
        dateTimeLabelFormats: {second: '%l:%M:%S %p',
                               minute: '%l:%M %p', 
                               hour: '%l:%M %p',
                               day: '%e. %b', week: '%e. %b', 
                               month: '%b \'%y', year: '%Y'})

您无法应用strftime,需要让Highcharts使用您在dateTimeLabelFormats中指定的格式处理它。