我正在使用懒惰的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
答案 0 :(得分:0)
你能把你在哪里调用strftime吗?我想如果你做了
dt << DateTime.parse(date).strftime("%d/%m/%Y %H:%M")
一切都应该正常,因为错误看起来就像你试图在字符串上调用strftime
答案 1 :(得分:0)
这可能有点晚了,但我可以使用dateTimeLabelFormats
和datetime
类型来获得正确的格式。
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
中指定的格式处理它。