Rails-更简单的方法来获得一天中的几个小时?
Rails-ier way to get hours in a day?
我需要知道夏令时有多少小时,结果是这样的:
>(Time.zone.parse('31-10-2021').end_of_day - Time.zone.parse('31-10-2021').beginning_of_day)/3600
=> 24.99999999999972
有没有更Rails的方法?类似于 Date.parse('31-10-2021').hours
或 Date.parse('31-10-2021').hours_in_day
?
如果您使用的是 Rails 6.1,则可以使用 ActiveSupport::Duration#in_hours:
hours = Time.zone.new(2021, 10, 31).then do |day|
(day.beginning_of_day-day.end_of_day).in_hours
.round.to_i # optional
end
在旧版本的 Rails 中,您可以:
hours = Time.zone.new(2021, 10, 31).then do |day|
((day.beginning_of_day-day.end_of_day) / 1.hour).round.to_i
end
我需要知道夏令时有多少小时,结果是这样的:
>(Time.zone.parse('31-10-2021').end_of_day - Time.zone.parse('31-10-2021').beginning_of_day)/3600
=> 24.99999999999972
有没有更Rails的方法?类似于 Date.parse('31-10-2021').hours
或 Date.parse('31-10-2021').hours_in_day
?
如果您使用的是 Rails 6.1,则可以使用 ActiveSupport::Duration#in_hours:
hours = Time.zone.new(2021, 10, 31).then do |day|
(day.beginning_of_day-day.end_of_day).in_hours
.round.to_i # optional
end
在旧版本的 Rails 中,您可以:
hours = Time.zone.new(2021, 10, 31).then do |day|
((day.beginning_of_day-day.end_of_day) / 1.hour).round.to_i
end