Dol*_*lls 2 ruby-on-rails highcharts ruby-on-rails-3
我正在使用LazyHighCharts并尝试将json数据转换为仅显示最近24小时,我在将日期和时间("2014-06-16 16:00:00")转换为毫秒时遇到了一些麻烦.
数据结构
{"status": "ok", "data": [{"2014-06-16 16:00:00": 24.2},{"2014-06-17 12:00:00": 30.2},{"2014-06-18 17:00:00": 42.9}]} etc
Run Code Online (Sandbox Code Playgroud)
调节器
@data = JSON.parse(open(@temperature.url).read)
dates = []
temps = []
@data['data'].each do |data|
dates << data.keys
temps << data.values
end
datetime = dates.each do |d| DateTime.parse(d).to_i end
@graph = LazyHighCharts::HighChart.new('graph') do |f|
f.chart(:height => '400')
f.yAxis [:title => {:text => "Temperature", :margin => 20, style: { color: '#333'}}]
f.series(:pointInterval => 1.hour, :pointStart => 30.day.ago, :type => 'area', :name => '24hrs', :data => [[datetime, temps]])
f.options[:xAxis] = { :minTickInterval => 24 * 3600 * 1000, :type => "datetime", :dateTimeLabelFormats => { day: "%b %e"}, :title => { :text => nil }, :labels => { :enabled => true } }
end
Run Code Online (Sandbox Code Playgroud)
您需要将sstring转换为dateTime作为第一个,使用此代码:
DateTime.parse("2011-05-19 10:30:14").strftime('%Q')
Run Code Online (Sandbox Code Playgroud)
或者这段代码:
"2014-06-16 16:00:00".to_datetime.strftime('%Q')
Run Code Online (Sandbox Code Playgroud)
因此,您可以转换日期字符串数组,如下所示:
dates.map!{|d| d.to_datetime.strftime('%Q')}
Run Code Online (Sandbox Code Playgroud)
在 Rails 中,您可以使用以下命令将格式正确的字符串转换为毫秒:
"2014-06-16 16:00:00".to_datetime.strftime('%Q')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11197 次 |
最近记录: |