如何在轨道上减去红宝石中的日期

时间:2016-08-20 20:16:34

标签: ruby-on-rails ruby ruby-on-rails-4.2

我试图减去日期,但它只减去月份。我以mm / dd / yyyy格式将params [:date]从视图传递给控制器​​。 我在控制器中有代码

include AgeCalculatorHelper
def new
  @age = AgeCalculator.date_subtr(params[:date])
  render :index
end

在helpers.rb

require 'date'
class AgeCalculator
  def self.date_subtr(date)
    (Date.today.strftime('%m/%d/%y').to_i - date.to_i)
  end

我在没有to_i的情况下尝试了错误 undefined method - “for "08/21/16":String Did you mean? -@

1 个答案:

答案 0 :(得分:0)

我认为你正在解析错误的变量。试试这个

def self.date_subtr(date)
  Date.today - Date.strptime(date, '%m/%d/%Y')
end

以" mm / dd / yyy"的格式解析日期。并从当前日期中减去它。我想这会给你两个日期之间的天数。

编辑:

你可以像这样输出几个月和几天

days = Date.today - Date.strptime('08-09-1991', '%m-%d-%Y')
"#{days.to_i / 365} years #{days.to_i % 12} months #{days.to_i % 365} days"