Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby中的日期时间比较_Ruby_Datetime - Fatal编程技术网

Ruby中的日期时间比较

Ruby中的日期时间比较,ruby,datetime,Ruby,Datetime,我有一个航班起飞的日期,比如说“2010-12-20”,还有两次,比如“23:30”和“02:15” 问题是:我需要获取这两个日期的日期时间(yyyy-MM-dd HH:MM:ss,例如,2010-12-17 14:38:32),但我不知道第二次的日期(可以是出发的同一天,也可以是下一天) 我正在寻找RubyonRails的最佳解决方案。在PHP中,只需多次使用字符串拆分,但我相信,Rails和往常一样,有一种更加优雅的方式 下面是我的伪代码,我想把它转换成Ruby: depart_time =

我有一个航班起飞的日期,比如说“2010-12-20”,还有两次,比如“23:30”和“02:15”

问题是:我需要获取这两个日期的日期时间(yyyy-MM-dd HH:MM:ss,例如,2010-12-17 14:38:32),但我不知道第二次的日期(可以是出发的同一天,也可以是下一天)

我正在寻找RubyonRails的最佳解决方案。在PHP中,只需多次使用字符串拆分,但我相信,Rails和往常一样,有一种更加优雅的方式

下面是我的伪代码,我想把它转换成Ruby:

depart_time = '23:30'
arrive_time = '02:15'
depart_date = '2010-12-20'
arrive_date = (arrive.hour < depart.hour and arrive.hour < 5) ? depart_date + 1 : depart_date
# Final results
depart = depart_date + ' ' + depart_time
arrive = arrive_date + ' ' + arrive_time
出发时间='23:30'
到达时间='02:15'
出发日期='2010-12-20'
到达日期=(到达时间<出发时间>到达时间<5)?出发日期+1:出发日期
#最终结果
出发=出发日期+出发时间
到达=到达日期+到达时间

我想找到在Ruby on Rails中实现这一点的最佳方法,而不仅仅是玩字符串。

这只是纯Ruby,与Rails无关:

require 'date'

depart_time = DateTime.strptime '23:30', '%H:%M'
arrive_time = DateTime.strptime '02:15', '%H:%M'
arrive_date = depart_date = Date.parse( '2010-12-20' )
arrive_date += 1 if arrive_time.hour < depart_time.hour and arrive_time.hour < 5

puts "#{depart_date} #{depart_time.strftime '%H:%M'}",
     "#{arrive_date} #{arrive_time.strftime '%H:%M'}"
#=> 2010-12-20 23:30
#=> 2010-12-21 02:15
需要“日期”
出发时间=DateTime.strtime'23:30','%H:%M'
到达时间=DateTime.strtime“02:15”,“%H:%M”
到达日期=离开日期=日期。解析('2010-12-20')
如果到达时间.hour<出发时间.hour和到达时间.hour<5,则到达时间+=1
放置“#{depart_date}{depart_time.strftime'%H:%M'}”,
“#{arrival_date}{arrival_time.strftime'%H:%M'}”
#=> 2010-12-20 23:30
#=> 2010-12-21 02:15

这只是纯Ruby,与Rails无关:

require 'date'

depart_time = DateTime.strptime '23:30', '%H:%M'
arrive_time = DateTime.strptime '02:15', '%H:%M'
arrive_date = depart_date = Date.parse( '2010-12-20' )
arrive_date += 1 if arrive_time.hour < depart_time.hour and arrive_time.hour < 5

puts "#{depart_date} #{depart_time.strftime '%H:%M'}",
     "#{arrive_date} #{arrive_time.strftime '%H:%M'}"
#=> 2010-12-20 23:30
#=> 2010-12-21 02:15
需要“日期”
出发时间=DateTime.strtime'23:30','%H:%M'
到达时间=DateTime.strtime“02:15”,“%H:%M”
到达日期=离开日期=日期。解析('2010-12-20')
如果到达时间.hour<出发时间.hour和到达时间.hour<5,则到达时间+=1
放置“#{depart_date}{depart_time.strftime'%H:%M'}”,
“#{arrival_date}{arrival_time.strftime'%H:%M'}”
#=> 2010-12-20 23:30
#=> 2010-12-21 02:15