Получить время, соответствующее началу текущего календарного месяца - PullRequest
2 голосов
/ 14 июля 2010

Как я могу получить объект Time, соответствующий началу текущего календарного месяца? Например, если бы я запустил эту функцию сегодня, я бы получил объект Time на 01.07.2010 в полночь

Бонусный вопрос: Как я могу сделать то же самое для текущей недели ? Если бы я запустил эту функцию сегодня, я бы получил объект Time на 7/11/2010 в полночь

Ответы [ 3 ]

3 голосов
/ 14 июля 2010
 Date.civil(Date.today.year, Date.today.month, 1)

Бонус, чтобы получить воскресенье:

Date.commercial(Date.today.year, Date.today.cweek - 1, 7)

Чтобы получить понедельник

Date.commercial(Date.today.year, Date.today.cweek, 1)

Ресурсы: http://ruby -doc.org / core /classes / Date.html

Редактировать: Я передумал в воскресенье, у вас будут проблемы в начале года.Поэтому я бы сделал это вместо воскресенья

Date.commercial(Date.today.year, Date.today.cweek, 1) - 1
1 голос
/ 14 июля 2010

В Rails ActiveSupport есть помощники для всего этого (beginning_of_month, beginning_of_week и т. Д.)

0 голосов
/ 14 июля 2010

Попробуйте это:

Time.utc(Time.new.year,Time.new.month)

Также см. Time.gm, Time.local (что вам нужно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...