Как я могу получить текущий день недели, начинающийся в рубине? - PullRequest
9 голосов
/ 28 июля 2011

Например, сегодня 28/07/2011 Как я могу получить недели первый день понедельник, который 25/07/2011 в рубине

Ответы [ 2 ]

32 голосов
/ 28 июля 2011
>> Date.today.beginning_of_week.strftime('%d/%m/%Y')
#=> 25/07/2011

См. Классы Время и Дата в Rails для получения дополнительной информации и strftime для получения информации о параметрах форматирования.

26 голосов
/ 28 июля 2011

Без Rails / ActiveSupport:

phrogz$ irb
> require 'date'
> now = Date.today
#=> #<Date: 2011-07-28 (4911541/2,0,2299161)>
> sunday = now - now.wday
#=> #<Date: 2011-07-24 (4911533/2,0,2299161)>
> monday = now - (now.wday - 1) % 7
#=> #<Date: 2011-07-25 (4911535/2,0,2299161)>
> monday.iso8601
#=> "2011-07-25"
> monday.strftime('%d/%m/%Y')
#=> "25/07/2011"

Для получения дополнительной информации см. Класс Date в стандартной библиотеке.

Заключен в метод:

require 'date'
# For weekdays to start on Monday use 1 for the offset; for Tuesday use 2, etc.
def week_start( date, offset_from_sunday=0 )
  date - (date.wday - offset_from_sunday)%7
end

sun = Date.parse '2011-07-24'
week_start(sun,0).strftime('%a, %b-%d')  #=> "Sun, Jul-24"
week_start(sun,1).strftime('%a, %b-%d')  #=> "Mon, Jul-18"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...