【问题标题】:Rails-ier way to get hours in a day?在一天中获得几个小时的 Rails 方式?
【发布时间】:2021-12-15 03:39:12
【问题描述】:

我需要知道夏令时有多少小时,结果如下:

>(Time.zone.parse('31-10-2021').end_of_day - Time.zone.parse('31-10-2021').beginning_of_day)/3600
=> 24.99999999999972

有没有 Rails-ier 的方式? Date.parse('31-10-2021').hoursDate.parse('31-10-2021').hours_in_day 之类的东西?

【问题讨论】:

    标签: ruby-on-rails ruby time


    【解决方案1】:

    如果您使用的是 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
    

    【讨论】:

    • 附带说明:除非确实需要(在处理用户输入时),否则不要解析日期。
    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2021-07-30
    • 2015-02-04
    • 2021-06-26
    • 1970-01-01
    • 2022-11-22
    相关资源
    最近更新 更多