Ruby on rails 红宝石上周日的年月日
我需要以Ruby on rails 红宝石上周日的年月日,ruby-on-rails,ruby,time,Ruby On Rails,Ruby,Time,我需要以2014-01-20 所以,last_sunday=2014-01-20和most_sunday=2014-01-26 我使用的是Rails 4.0和Ruby 2.0。我怎样才能得到这些日期呢?我建议你看看 [11] pry(main)> last_sunday = Time.now - (Time.now.wday + 7) * 86400 => 2014-01-19 17:17:19 -0600 [12] pry(main)> most_recent_sunday
2014-01-20
所以,last_sunday=2014-01-20
和most_sunday=2014-01-26
我使用的是Rails 4.0和Ruby 2.0。我怎样才能得到这些日期呢?我建议你看看
[11] pry(main)> last_sunday = Time.now - (Time.now.wday + 7) * 86400
=> 2014-01-19 17:17:19 -0600
[12] pry(main)> most_recent_sunday = Time.now - (Time.now.wday) * 86400
=> 2014-01-26 17:18:03 -0600
您还可以使用rail的活动支持从上面计算的日期减去7天=)rails 4:
most_recent_sunday = Time.now.sunday.to_s
last_sunday = Time.now.last_week.sunday.to_s
要将其设置为您想要的格式,请执行以下操作:
DateTime.parse(most_recent_sunday).strftime("%Y-%m-%d")
纯Ruby解决方案:
require 'date'
last_two_weeks = (Date.today-13)..Date.today
last_two_sundays = last_two_weeks.select &:sunday?
puts last_two_sundays #=> 2014-01-19, 2014-01-26
谢谢你的提示-在TinMan的回答中有一些关于这方面的有用信息:我实际上必须在最近的
上附加一个.to
方法才能正确解析,并在.strftime
方法中包含破折号。另外,Time.now.sunday实际上返回的是即将到来的星期天,而不是最后一个星期天。不过谢谢你的帮助,让我有足够的机会来解决这个问题。
require 'date'
last_two_weeks = (Date.today-13)..Date.today
last_two_sundays = last_two_weeks.select &:sunday?
puts last_two_sundays #=> 2014-01-19, 2014-01-26