簡體   English   中英

將字符串轉換為日期時間 Rails

[英]Converting String to Datetime Rails

我正在使用 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

控制器

@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

您需要將sstring轉換為dateTime作為第一個,使用此代碼:

DateTime.parse("2011-05-19 10:30:14").strftime('%Q')

或者這段代碼:

"2014-06-16 16:00:00".to_datetime.strftime('%Q')

因此,您可以轉換日期字符串數組,如下所示:

dates.map!{|d| d.to_datetime.strftime('%Q')}

幫助鏈接: link-1link-2

在Rails中,您可以將格式正確的字符串轉換為毫秒,其中包括:

"2014-06-16 16:00:00".to_datetime.strftime('%Q')

您可以使用 Activesupport String#in_time_zone

in_time_zone(zone = ::Time.zone)Link 如果設置了 Time.zone 或 Time.zone_default,則將 String 轉換為當前區域中的 TimeWithZone,否則通過 String#to_time 將 String 轉換為 Time

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM