Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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 ArgumentError:date DateTime.now().change()对于带有2,4,6,9,11的月份无效_Ruby_Datetime - Fatal编程技术网

Ruby ArgumentError:date DateTime.now().change()对于带有2,4,6,9,11的月份无效

Ruby ArgumentError:date DateTime.now().change()对于带有2,4,6,9,11的月份无效,ruby,datetime,Ruby,Datetime,我正在用一些动态月份更改日期时间的月份 我使用了DateTime.now.change(月:月) 只有当月值在[1,3,5,7,8,10,12]之间时,它才起作用 当我尝试使用[2,4,6,9,11]时,它返回ArgumentError:invalid dateerror irb(main):073:0> DateTime.now.change(month: 1) => Sat, 31 Jan 2015 19:59:28 +0530 irb(main):075:0> Date

我正在用一些动态月份更改日期时间的月份

我使用了
DateTime.now.change(月:月)

只有当月值在[1,3,5,7,8,10,12]之间时,它才起作用

当我尝试使用[2,4,6,9,11]时,它返回
ArgumentError:invalid date
error

irb(main):073:0> DateTime.now.change(month: 1)
=> Sat, 31 Jan 2015 19:59:28 +0530

irb(main):075:0> DateTime.now.change(month: 3)
=> Tue, 31 Mar 2015 19:59:33 +0530

irb(main):077:0> DateTime.now.change(month: 5)
=> Sun, 31 May 2015 19:59:39 +0530

irb(main):079:0> DateTime.now.change(month: 7)
=> Fri, 31 Jul 2015 19:59:44 +0530

irb(main):080:0> DateTime.now.change(month: 8)
=> Mon, 31 Aug 2015 19:59:48 +0530

irb(main):082:0> DateTime.now.change(month: 10)
=> Sat, 31 Oct 2015 19:59:54 +0530

irb(main):084:0> DateTime.now.change(month: 12)
=> Thu, 31 Dec 2015 20:00:00 +0530

irb(main):074:0> DateTime.now.change(month: 2)
irb(main):076:0> DateTime.now.change(month: 4)
irb(main):078:0> DateTime.now.change(month: 6)
irb(main):081:0> DateTime.now.change(month: 9)
irb(main):083:0> DateTime.now.change(month: 11)
ArgumentError: invalid date
    from /home/kiprosh/.rvm/gems/ruby-2.1.2/gems/activesupport-3.2.18/lib/active_support/core_ext/date_time/calculations.rb:35:in `civil'
    from /home/kiprosh/.rvm/gems/ruby-2.1.2/gems/activesupport-3.2.18/lib/active_support/core_ext/date_time/calculations.rb:35:in `change'
    from (irb):76
    from /home/kiprosh/.rvm/gems/ruby-2.1.2/gems/railties-3.2.18/lib/rails/commands/console.rb:47:in `start'
    from /home/kiprosh/.rvm/gems/ruby-2.1.2/gems/railties-3.2.18/lib/rails/commands/console.rb:8:in `start'
    from /home/kiprosh/.rvm/gems/ruby-2.1.2/gems/railties-3.2.18/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
irb(main):073:0>DateTime.now.change(月份:1)
=>Sat,2015年1月31日19:59:28+0530
irb(main):075:0>DateTime.now.change(月份:3)
=>2015年3月31日星期二19:59:33+0530
irb(主要):077:0>日期时间。现在。更改(月份:5)
=>太阳报,2015年5月31日19:59:39+0530
irb(main):079:0>DateTime.now.change(月份:7)
=>2015年7月31日星期五19:59:44+0530
irb(main):080:0>DateTime.now.change(月份:8)
=>2015年8月31日星期一19:59:48+0530
irb(main):082:0>DateTime.now.change(月份:10)
=>Sat,2015年10月31日19:59:54+0530
irb(main):084:0>DateTime.now.change(月份:12)
=>2015年12月31日星期四20:00:00+0530
irb(主要):074:0>日期时间。现在。更改(月份:2)
irb(main):076:0>DateTime.now.change(月份:4)
irb(main):078:0>DateTime.now.change(月份:6)
irb(main):081:0>DateTime.now.change(月份:9)
irb(main):083:0>DateTime.now.change(月份:11)
ArgumentError:无效日期
from/home/kiprosh/.rvm/gems/ruby-2.1.2/gems/activesupport-3.2.18/lib/active\u support/core\u ext/date\u time/calculations.rb:35:in“civil”
from/home/kiprosh/.rvm/gems/ruby-2.1.2/gems/activesupport-3.2.18/lib/active\u support/core\u ext/date\u time/calculations.rb:35:in“change”
起始(irb):76
from/home/kiprosh/.rvm/gems/ruby-2.1.2/gems/railties-3.2.18/lib/rails/commands/console.rb:47:in'start'
from/home/kiprosh/.rvm/gems/ruby-2.1.2/gems/railties-3.2.18/lib/rails/commands/console.rb:8:in'start'
from/home/kiprosh/.rvm/gems/ruby-2.1.2/gems/railties-3.2.18/lib/rails/commands.rb:41:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'

为什么它不是带有[2,4,6,9,11]的工作月值?

因为
now()
2015-08-31
。不工作的月份没有31天。

因为
now()
2015-08-31
。不起作用的月份没有31天。

oops。。。我没有注意到。。。谢谢@Isowen,我有这个关于改变年份的问题。永远记住2月29日。哎呀。。。我没有注意到。。。谢谢@Isowen,我有这个关于改变年份的问题。永远记住2月29日。grrrrrr。