5

我有一个名为 的模型job

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

Date.today我认为我们必须计算和之间的差异jobs created_at

我的方法是:

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

我遇到了一些错误,请让我知道如何计算创建工作的天数。

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

如果有人知道如何计算,请在此处发布。

4

3 回答 3

15

job.created_at是一个TimeDate.today是一个Date

你不能减去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
于 2015-01-22T06:25:21.250 回答
1

你是对的,你应该使用Date.todayjob.created_at

如果要计算自创建作业以来的天数,请使用以下命令:

def job_for_days
  (Date.today - self.created_at).round(1.day)
end
于 2013-09-23T07:54:22.580 回答
1

给定两个日期-

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

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

天数的区别:

date2.mjd - date1.mjd

在哪里,

mjd = 修改儒略日数

于 2013-09-23T07:56:46.710 回答