【问题标题】:How do I get DateTime for the end of the week without Rails?我如何在没有 Rails 的情况下获得周末的 DateTime?
【发布时间】:2011-10-09 23:54:05
【问题描述】:

如果没有 Rails,我如何获得周末的 DateTime?

【问题讨论】:

    标签: ruby sinatra datamapper


    【解决方案1】:

    这是end_of_week的ActiveSupport源代码

    # File activesupport/lib/active_support/core_ext/date/calculations.rb, line 187
    def end_of_week
      days_to_sunday = self.wday!=0 ? 7-self.wday : 0
      result = self + days_to_sunday.days
      self.acts_like?(:time) ? result.end_of_day : result
    end
    

    没有 ActiveSupport 也很简单

    def end_of_week(date)
      days_to_sunday = date.wday!=0 ? 7-date.wday : 0
      result = date + (days_to_sunday * 86400)
      result
    end
    

    另一种选择是在项目中包含 ActiveSupport 作为 gem 依赖项。您无需包含完整的 Rails 堆栈即可处理日期,只需 ActiveSupport。

    【讨论】:

      【解决方案2】:

      您可以使用 chronic 之类的内容。虽然“周末”有点模糊。

      【讨论】:

      • 如果你在项目中添加一个新的 gem 依赖来模仿 ActiveSupport 特性(我只想强调 end_of_week 方法属于 ActiveSupport 而不是 Rails,你为什么不呢?添加ActiveSupport 本身?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 2018-12-07
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 2019-10-24
      相关资源
      最近更新 更多