【问题标题】:How to add 10 days to current time in Rails如何在 Rails 中将当前时间添加 10 天
【发布时间】:2011-06-06 23:15:39
【问题描述】:

我尝试做类似的事情

Time.now + 5.days

但这不起作用,尽管我隐约记得看到并印象深刻,能够做类似2.years 之类的事情。

如何在 Rails 3 中做到这一点?

【问题讨论】:

  • 应该可以。你遇到了什么错误?
  • 应该可以。当您在 Rails 中时,Time.zone.now 听起来更合适

标签: ruby-on-rails datetime ruby-on-rails-3 activesupport


【解决方案1】:

这绝对有效,我在需要为当前日期添加天数的任何地方都使用它:

Date.today + 5

【讨论】:

    【解决方案2】:

    在 Ruby 上试试这个。 它将返回未来指定天数的新日期/时间

    DateTime.now.days_since(10)
    

    【讨论】:

      【解决方案3】:

      在 Rails 上试试这个

      Time.new + 10.days 
      

      在 Ruby 上试试这个

      require 'date'
      DateTime.now.next_day(10).to_time
      

      【讨论】:

        【解决方案4】:

        其他一些选项,仅供参考

        -10.days.ago
        # Available in Rails 4
        DateTime.now.days_ago(-10)
        

        只列出我知道的所有选项:

        [1] Time.now + 10.days
        [2] 10.days.from_now
        [3] -10.days.ago
        [4] DateTime.now.days_ago(-10)
        [5] Date.today + 10
        

        那么现在,如果我们关心时区,它们之间有什么区别:

        • [1, 4] 有系统时区
        • [2, 3] 配置 Rails 应用程序的时区
        • [5] 仅日期,结果中不包含时间

        【讨论】:

          【解决方案5】:

          daysyears 等是 Active Support 的一部分,所以这在 irb 中不起作用,但它应该在 rails console 中起作用。

          【讨论】:

          • 是的 - 恰到好处。在香草红宝石中无法做到这一点。
          • 也适用于 irb。如果您安装了 gem,只需在会话开始时或使用它的命令之前执行 require 'active_support/time'
          【解决方案6】:

          使用

          Time.now + 10.days
          

          甚至

          10.days.from_now
          

          两者都绝对有效。您确定您使用的是 Rails 而不仅仅是 Ruby?

          如果你肯定在 Rails 中,你想从哪里运行它?请注意,必须加载 Active Support。

          【讨论】:

          • @yuval 它适用于 rails 而不是 ruby​​..认为您已经掌握了它,但只是为了帮助他人
          • 这太棒了。我爱我一些 Ruby 和 Rails。
          • 有细微的差别。 Time.now + 10.days 总是选择您的系统时区,而 10.days.from_now 将选择 UTC 时区,如果在 rails 配置中没有设置任何内容。
          • 一般情况下,最好用Time.zone.now代替Time.now
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-21
          • 1970-01-01
          • 1970-01-01
          • 2013-01-27
          相关资源
          最近更新 更多