Подтвердить что ты не робот

Rails - получение текущей и месячной даты начала и окончания

Я новичок в рубинах на рельсах и застрял в датах. Я использовал Time.now для получения текущего времени. Теперь я хочу узнать даты srart и end для текущей недели и текущего месяца. Например:

Если Time.now возвращает меня -

2012-08-13 15:25:35 +0530

Затем даты начала и окончания текущей недели:

2012-08-12 - 2012-08-18

Тогда даты начала и окончания текущего месяца:

2012--08-01 - 2012-08-31

Я реализую то же самое с помощью кода:

Time.now.wday   
 => 1 

Time.now - 1.day
=> 2012-08-12 15:31:44 +0530 

Time.now + 5.day
 => 2012-08-19 15:32:38 +0530

и т.д. Но я не считаю это удобным способом сделать это. Я уверен, что Ruby on Rails делает лучшее решение. Может ли кто-нибудь предложить выяснить то же самое.

4b9b3361

Ответ 1

Вместо использования Time.now

Используйте следующий код для решения ваших запросов.

d = Date.today

d.at_beginning_of_week
#Mon, 13 Aug 2012
d.at_beginning_of_week.strftime
#"2012-08-13"
d.at_beginning_of_week.strftime("%d")
#"13" -> To print the date.

Аналогичным образом вы можете найти несколько методов в Date Class

Ответ 2

Проверьте класс Date:

http://api.rubyonrails.org/classes/Date.html

Методы begin_of_ * и end_of_ * выглядят точно так, как вам нужно. В течение недели вы даже можете пройти в тот день, когда вы считаете начало недели.