Ruby日期为1个月前的字符串
我需要用Ruby计算从今天算起1个月的日期,并将其转换为Ruby日期为1个月前的字符串,ruby,date,Ruby,Date,我需要用Ruby计算从今天算起1个月的日期,并将其转换为字符串,格式如下: yyyy-dd-mmThh:MM:ss(例如2014-08-26T00:00:00) 我尝试过:(DateTime.now-Date.today.prev\u month)。to\u DateTime.strftime(“%FT%T”),但我得到了一个方法不存在异常。尝试一下: (DateTime.now - 1.month).strftime("%FT%T").to_s 2.0.0-p247 :004 > re
字符串
,格式如下:
yyyy-dd-mmThh:MM:ss(例如2014-08-26T00:00:00)
我尝试过:(DateTime.now-Date.today.prev\u month)。to\u DateTime.strftime(“%FT%T”)
,但我得到了一个方法不存在异常。尝试一下:
(DateTime.now - 1.month).strftime("%FT%T").to_s
2.0.0-p247 :004 > require 'date'
=> false
2.0.0-p247 :005 > Date.today.prev_month
=> #<Date: 2014-10-27 ((2456958j,0s,0n),+0s,2299161j)>
2.0.0-p247 :006 > Date.today.prev_month.to_s
=> "2014-10-27"
2.0.0-p247 :008 > Date.today.prev_month.strftime("%F%T")
=> "2014-10-2700:00:00"
2.0.0-p247 :009 >
PS:我确信这对rails很好。请确认它是否也在ruby上独立工作
更新:
正如下面评论中所指出的,只有当您拥有activesupport
lib时,才可以使用此选项:
require 'date'
d = Date.today.prev_month # or Date.today.next_month, depending what you want
=> #<Date: 2014-12-27 ((2457019j,0s,0n),+0s,2299161j)>
d.strftime("%FT%T")
=> "2014-12-27T00:00:00"
需要“日期”
d=Date.today.prev#u month或Date.today.next#u month,具体取决于您的需要
=> #
d、 strftime(“%FT%T”)
=>“2014-12-27T00:00:00”
试试这个:
(DateTime.now - 1.month).strftime("%FT%T").to_s
2.0.0-p247 :004 > require 'date'
=> false
2.0.0-p247 :005 > Date.today.prev_month
=> #<Date: 2014-10-27 ((2456958j,0s,0n),+0s,2299161j)>
2.0.0-p247 :006 > Date.today.prev_month.to_s
=> "2014-10-27"
2.0.0-p247 :008 > Date.today.prev_month.strftime("%F%T")
=> "2014-10-2700:00:00"
2.0.0-p247 :009 >
2.0.0-p247:004>要求“日期”
=>错误
2.0.0-p247:005>Date.today.prev_月
=> #
2.0.0-p247:006>Date.today.prev_month.to_
=> "2014-10-27"
2.0.0-p247:008>日期。今天。上个月。标准时间(“%F%T”)
=> "2014-10-2700:00:00"
2.0.0-p247:009>
2021年更新
为了简单起见,您可以这样写:
1.month.ago.月初
#或
1.月前。月底到
如果您无法访问ActiveSupport,甚至无法访问Date或DateTime,那么您可以在30天前使用类似的功能:
(Time.now-60*60*24*30).strftime(“%FT%T”)
你是否使用activesupport
(它是rails
的一部分)?你的exeption未定义的方法“to_datetime”
?对不起,你想在一个月前还是在未来一个月?尽管如此,只使用activesupport
lib.ohh I,感谢您将更新我的答案以反映这一点,如果没有Rails,您将使用DateTime.now.prev\u month(1).strftime(“%FT%T”)
,并且使用Rails1.month.ago.strftime(“%FT%T”)
,DateTime.now.prev\u month.strftime(“%FT%T”)
,DateTime.now.prev\u month(1).strftime(“%FT%T”)
给出参数错误:参数数目错误(1代表0)
我似乎无法实现这一点,ruby似乎不认为activesupport似乎存在。实际上我很困惑-标题是上个月,但第一句话是我需要计算从今天算起1个月的日期
1个月前也是“从今天算起1个月”,但在另一个方向。:)无论如何,这个答案是正确的。