获得当月第一天的最有效方法是什么?

对于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 

这有效……

不是非常聪明:/

 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 = DateTime.now @date.beginning_of_month @date.end_of_month