【问题标题】:How to add minutes to a Time object如何将分钟添加到时间对象
【发布时间】:2011-10-19 15:44:03
【问题描述】:

在 Ruby 中,我该怎么做Time.now + 10.hours

secsmins 是否有等价物?例如:

Time.now + 15.mins

【问题讨论】:

  • 反过来不行:10 + Time.now: TypeError: Time can't be coerced into FixnumTime.now + 10 可以工作.. 对于所有有同样问题的人;)

标签: ruby-on-rails ruby time


【解决方案1】:

Ruby(编程语言)没有10.hours,这是ActiveSupport 作为Ruby on Rails(Web 框架)的一部分。是的,它确实有 minutesseconds 方法。

但是,Time#+(Time 实例上的 + 方法)会返回一个新的 Time 实例,该实例是未来的秒数。因此,无需任何 Ruby on Rails 糖,您可以简单地执行以下操作:

irb> t = Time.now
#=> 2011-08-03 22:35:01 -0600

irb> t2 = t + 10               # 10 Seconds
#=> 2011-08-03 22:35:11 -0600

irb> t3 = t + 10*60            # 10 minutes
#=> 2011-08-03 22:45:01 -0600

irb> t4 = t + 10*60*60         # 10 hours
#=> 2011-08-04 08:35:01 -0600

【讨论】:

  • @NailsonLandim,您可能会发现Timerizer 很有用。 “没有 Rails 的 Rails 时间语法。”
  • Core Extensions 文档的相应部分是guides.rubyonrails.org/… 和以下两个部分。
【解决方案2】:

如果您使用 ActiveSupport,您正在寻找的是完整的 .minutes.seconds

Time.now + 10.minutes
Time.now + 10.seconds

【讨论】:

    【解决方案3】:

    您还可以在 ActiveSupport 中执行以下操作:

    10.minutes.from_now
    
    10.minutes.ago
    

    【讨论】:

      【解决方案4】:

      我认为您说的是 Rails 添加的扩展。我想你需要15.minutes

      请参阅Active Support Core Extensions for Date, DateTime and Time 了解更多信息。

      【讨论】:

        【解决方案5】:

        时间对象

        time = Time.now

        向时间对象添加分钟:

        time + 5.minutes

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-29
          • 2017-10-22
          • 1970-01-01
          • 1970-01-01
          • 2011-12-23
          • 2016-02-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多