Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 红宝石上周日的年月日_Ruby On Rails_Ruby_Time - Fatal编程技术网

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