【发布时间】:2011-10-09 23:54:05
【问题描述】:
如果没有 Rails,我如何获得周末的 DateTime?
【问题讨论】:
标签: ruby sinatra datamapper
如果没有 Rails,我如何获得周末的 DateTime?
【问题讨论】:
标签: ruby sinatra datamapper
这是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。
【讨论】:
您可以使用 chronic 之类的内容。虽然“周末”有点模糊。
【讨论】:
end_of_week 方法属于 ActiveSupport 而不是 Rails,你为什么不呢?添加ActiveSupport 本身?