开发者

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

开发者 https://www.devze.com 2022-12-09 06:25 出处:网络
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\".

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

精彩评论

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