开发者

What's the most efficient way get the first day of the current month?

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜