ruby - 从 Date.today 获取月份

标签 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)>

我可以得到年份。但是我如何将月份作为整数返回 12

最佳答案

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

当您在 Ruby 字符串上使用 to_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

关于ruby - 从 Date.today 获取月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931662/

相关文章:

Ruby,从路径+文件名获取路径

ruby-on-rails - Ruby 2.4 升级后 - 尝试加载 gem 'uglifier' 时出错(Bundler::GemRequireError)

ruby-on-rails - Rails 元编程 : How to add instance methods at runtime?

ruby - 使用正则表达式在第一个逗号之前提取文本

ruby-on-rails - 运行 Ruby 2.3.1 时为 "Gem::InstallError: devise requires Ruby version >= 2.1.0."

ruby - 对 :let clause in Rspec before all test cases? 中定义的变量调用方法

Ruby 转置 csv

ruby-on-rails - 如果记录存在,如何设置变量

ruby - Mechanize 'link_with' 产生不同的 URL

ruby - 将 block 传递给方法 - Ruby