Rails如何从每个循环中获取日期差异

时间:2018-01-18 10:25:48

标签: mysql ruby-on-rails

在rails应用程序中如何获取每个循环记录的日期差异。我有一个名为date的字段,我想提取记录的降序日期之间的天数差异。

<div id="searchResult">
    <table class="table">
        <thead>
            <tr>
                <th>Guard Name</th>
                <th>Client Name</th>
                <th>Salary</th>
                <th>Transfer Date</th>
                <th>Days</th>
            </tr>
        </thead>
        <tbody>
            <% @search.each do |f| %>
            <tr>
                <td><%= f.guard.try(:name) %></td>
                <td><%= f.client.try(:name) %></td>
                <td><%= f.sallary %></td>
                <td><%= f.date.strftime("%Y-%b-%d") %></td>
                <td>Date Difference</td>
            </tr>
            <% end %>
        </tbody>
    </table>
</div>

2 个答案:

答案 0 :(得分:1)

有一个time_difference

你可以得到它:

<div id="searchResult">
    <table class="table">
        <thead>
            <tr>
                <th>Guard Name</th>
                <th>Client Name</th>
                <th>Salary</th>
                <th>Transfer Date</th>
                <th>Days</th>
            </tr>
        </thead>
        <tbody>
            <% @search.each_with_index do |f, i| %>
            <tr>
                <td><%= f.guard.try(:name) %></td>
                <td><%= f.client.try(:name) %></td>
                <td><%= f.sallary %></td>
                <td><%= f.date.strftime("%Y-%b-%d") %></td>
                <td><%=TimeDifference.between(@search[i].date,@search[i+1].date).in_years%></td>
            </tr>
            <% end %>
        </tbody>
    </table>
</div>

这里@search是一个数组,对于数组,我们可以得到如下结果: -

array[0] - array[1] 

previous_record.date - current_record.date

我认为它应该有用。

一个简单的例子是

start_time = Time.new(2013,1)
end_time = Time.new(2014,1)

TimeDifference.between(start_time, end_time).in_years
=> 1.0

答案 1 :(得分:0)

如果我理解你的问题:

each_cons方法,它迭代N个以下项目:

records.each_cons(2) do |current, previous|
  date_difference = current.date - previous.date
end