TypeError:预期的数字

时间:2013-09-23 07:42:55

标签: ruby-on-rails postgresql

我有一个名为job的模型。

我想计算自job创建以来的天数。

我认为我们必须计算Date.todayjobs created_at

之间的差异

我的方法是:

def self.open_jobs(date)
    Date.today - where("status='open' AND date(created_at) = ?",date).round
end

我收到一些错误,请告诉我如何计算作业创建的天数。

我必须计算天数。例如,我在2012年第20季度创建了一份工作。 它应该是Date.today - 20/09/2013 答案应该是5天还有一件事我需要再检查一次列状态=“打开”并只显示那些工作。

如果有人知道怎么计算,请在这里发帖。

3 个答案:

答案 0 :(得分:10)

job.created_atTimeDate.todayDate

您无法减去TimeDate。请注意Date.tomorrow - Time.now为您提供了该错误。

以秒为单位获得差异:

Time.now - job.created_at

您可以将此转换为天数(浮点数或整数),如下所示:

(Time.now - job.created_at) / 24.hours
((Time.now - job.created_at) / 24.hours).to_i

或者有(MyGod的回答):

Date.today.mjd - job.created_at.to_date.mjd

答案 1 :(得分:1)

您应该使用Date.todayjob.created_at

如果您想计算自创建作业以来的天数,请使用:

def job_for_days
  (Date.today - self.created_at).round(1.day)
end

答案 2 :(得分:0)

考虑两个日期 -

date1= Date.parse("10/10/2012")

date2= Date.parse("10/21/2012")

天数的差异:

date2.mjd - date1.mjd

其中,

mjd =修改后的朱利安日号