Ruby 从Date.today开始获取月份

Ruby 从Date.today开始获取月份,ruby,Ruby,如何从下面的代码中获得整数形式的月份 3.2.21@2.1.3 (#<VouchersController:0x007ff453)> t = (Date.today + 5).to_s => "2015-12-01" 3.2.21@2.1.3 (#<VouchersController:0x007ff453)> t.to_i => 2015 3.2.21@2.1.3 (#<VouchersController:0x007ff453)> 我能拿到今

如何从下面的代码中获得整数形式的月份

3.2.21@2.1.3 (#<VouchersController:0x007ff453)> t = (Date.today + 5).to_s
=> "2015-12-01"
3.2.21@2.1.3 (#<VouchersController:0x007ff453)> t.to_i
=> 2015
3.2.21@2.1.3 (#<VouchersController:0x007ff453)>

我能拿到今年的奖金。但是,如何将月份作为整数来获取,从而返回12?

获取年份的原因只是将字符串2015-12-01转换为整数

在Ruby字符串上使用i时,它只使用前导数字字符,然后丢弃字符串的其余部分。当它到达第一个字符时,它停止作为整数进行解析,并返回到目前为止的结果:2015

为了使用Date的实际功能,请不要使用to_s将对象转换为字符串

require 'date'
t = Date.today + 5 # => #<Date: 2015-11-30 ((2457357j,0s,0n),+0s,2299161j)>
t.year             # => 2015
t.month            # => 11

获得年份的原因只是将字符串2015-12-01转换为整数

在Ruby字符串上使用i时,它只使用前导数字字符,然后丢弃字符串的其余部分。当它到达第一个字符时,它停止作为整数进行解析,并返回到目前为止的结果:2015

为了使用Date的实际功能,请不要使用to_s将对象转换为字符串

require 'date'
t = Date.today + 5 # => #<Date: 2015-11-30 ((2457357j,0s,0n),+0s,2299161j)>
t.year             # => 2015
t.month            # => 11