2012-11-03 40 views
5

Tôi trừ hai ngày trong mô hình của tôi theo cách này: -Trừ hai ngày tại Ruby on Rails

def total_days 
     self.to_date - self.from_date 
    end 

ngày của tôi là trong Mysql Date (YYYY-MM-DD).

Khi hiển thị ngày của tôi theo lượt, nó cho tôi 5/1 ngày. Mặc dù 5 là chính xác nó là phụ thêm '/1' cho đến ngày. Làm thế nào tôi có thể loại bỏ điều này. Có cách nào tốt hơn để làm điều đó không?

Trả lời

14

thử này, ví dụ

require 'date' 
$ now = Date.today 
$ before = Date.today + 2.days 
$ difference_in_days = (before - now).to_i 

cho giải pháp của bạn

def total_days 
    difference_in_days = (self.to_date - self.from_date).to_i 
end 
+0

Cảm ơn .to_i làm việc cho tôi. –

+0

Nếu bạn muốn sự khác biệt về số giờ bạn có thể sử dụng: 'difference_in_hours = (self.to_date - self.from_date) .to_f * 24' – pisaruk

1

Bạn cũng có thể làm việc trong vùng đang xem với:

<%= distance_of_time_in_words(contract['start_date'], contract['end_date'])%> 
+0

Câu trả lời hay hơn. Cảm ơn – Abram