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 делает лучшее решение. Может ли кто-нибудь предложить выяснить то же самое.
Ответы
Ответ 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_ * выглядят точно так, как вам нужно. В течение недели вы даже можете пройти в тот день, когда вы считаете начало недели.