Ответ 1
Time.parse("2009-10-26").strftime("%Y-%m-01")
С ruby я пытаюсь получить формат даты как таковой: 2009-10-01
Где я беру текущую дату (2009-10-26), а затем меняю день на "01".
Я знаю, как это сделать, но было любопытно, что самый короткий путь, код мудрый, чтобы снять это.
Time.parse("2009-10-26").strftime("%Y-%m-01")
Если вы не возражаете, включая ActiveSupport в своем приложении, вы можете просто сделать это:
require 'active_support'
date = Date.today.beginning_of_month
require 'date'
now = Date.today
Date.new(now.year, now.month, 1)
Если вам нужен объект даты без ActiveSupport, вы можете вернуться к последнему дню последнего месяца и сумме 1.
Date.today - Date.today.mday + 1
Наиболее эффективная для начала и окончания текущего месяца
@date = DateTime.now
@date.beginning_of_month
@date.end_of_month
Это работает...
Не ужасно умный:/
require 'date'
Date.parse(Date.parse("2009-10-26").to_s[0,8] << "01")
require 'active_support/core_ext'
Date.today.beginning_of_month
Как
Date.today.beginning_of_day
Date.today.end_of_day
и
Date.today.beginning_of_week
Date.today.end_of_week
Там также есть
Date.today.beginning_of_year
Date.today.end_of_year