With ruby I'm trying to get format a date as such: 2009-10-01
Where I take the current date (2009-10-26) and then change the day to "01".
开发者_JAVA百科I know of ways to do this, but was curious what the shortest way is, code wise, to pull this off.
If you don't mind including ActiveSupport in your application, you can simply do this:
require 'active_support'
date = Date.today.beginning_of_month
Time.parse("2009-10-26").strftime("%Y-%m-01")
require 'date'
now = Date.today
Date.new(now.year, now.month, 1)
Most efficient to get start and end date of current month
@date = DateTime.now
@date.beginning_of_month
@date.end_of_month
If you need the date object without ActiveSupport, you can go back to the last day of the last month and sum 1.
Date.today - Date.today.mday + 1
Like
Date.today.beginning_of_day
Date.today.end_of_day
And
Date.today.beginning_of_week
Date.today.end_of_week
There also is
Date.today.beginning_of_year
Date.today.end_of_year
This works...
Not terribly clever :/
require 'date'
Date.parse(Date.parse("2009-10-26").to_s[0,8] << "01")
require 'active_support/core_ext'
Date.today.beginning_of_month
精彩评论