2012-11-03 11 views
5

jestem odjęcie dwóch dat w moim modelu w ten sposób: -Odjęcie dwóch dat w Ruby on Rails

def total_days 
     self.to_date - self.from_date 
    end 

Moja data jest w formacie Mysql Date (YYYY-MM-DD).

Podczas wyświetlania mojej daty w widoku daje mi to 5/1 dni. Nawet jeśli 5 jest poprawne, to dołącza się do dni '/1'. Jak mogę to usunąć. Czy jest jakiś lepszy sposób na zrobienie tego?

Odpowiedz

14

spróbować na przykład

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

do rozwiązania

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

Dzięki .to_i pracował dla mnie. –

+0

Jeśli chcesz uzyskać różnicę w godzinach, możesz użyć: 'difference_in_hours = (self.to_date - self.from_date) .to_f * 24' – pisaruk

1

Można również pracować w widoku z:

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

Lepsza odpowiedź. Dzięki – Abram