Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby日期为1个月前的字符串_Ruby_Date - Fatal编程技术网

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

我需要用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 > 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”)
,并且使用Rails
1.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个月”,但在另一个方向。:)无论如何,这个答案是正确的。