Number of hours between two dates - Ruby
假设我想要明天和现在之间的差异(以小时为单位)。
我试过的
1 2 3 | t = (DateTime.tomorrow - DateTime.now) (t / 3600).to_i => 0 |
为什么给出0?
我究竟做错了什么?
这是因为
1 2 | DateTime.tomorrow # => Wed, 22 Apr 2015 |
如果查看DateTime的官方文档,则可以看到没有方法
您可以使用
1 2 3 4 5 | DateTime.tomorrow.to_time # => 2015-04-22 00:00:00 +0530 (DateTime.tomorrow.to_time - DateTime.now) / 1.hours # => 9.008116581638655 |
要获取日期之间的确切时差:
1 2 | (DateTime.tomorrow.to_time - Date.today.to_time) / 1.hours # => 24.0 |
试试这个
1 2 | t = (DateTime.tomorrow.to_time - Date.today.to_time) t = (t / 3600).to_i |
如果你有两个约会
1 2 | start_time = Time.new(2015,1, 22, 35, 0) end_time = Time.new(2015,2, 22, 55, 0) |
在https://rubygems.org/gems/time_difference上尝试Ruby的时差宝石
1 2 3 | def timediff(start, end) TimeDifference.between(start, end).in_hours end |
并这样称呼:
1 | timediff(start_time, end_time) |
它将起作用。
干杯!
1 2 3 4 5 6 7 8 | seconds = DateTime.now.seconds_until_end_of_day #=> 41133 seconds / 3600 #=> 11 distance_of_time_in_words(seconds) =>"about 11 hours" |
它返回有理数。 如果要使用
1 2 | >> (DateTime.tomorrow - DateTime.now).round 1 |
或者,如果您想从现在开始数小时内获得价值,请使用
1 2 | >> (Date.tomorrow.to_time - Time.now) / 1.hour 11.119436663611111 |