2012-11-03 15 views
5

sto sottraendo due date nel mio modello in questo modo: -sottraendo due date in Ruby on Rails

def total_days 
     self.to_date - self.from_date 
    end 

mia data è in formato Mysql Date (AAAA-MM-DD).

Quando si visualizza la mia data in vista mi sta dando 5/1 giorni. Anche se 5 è corretto, viene aggiunto ai giorni '/1'. Come posso rimuovere questo. C'è un modo migliore per farlo?

risposta

14

provare questo, per esempio

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

per la soluzione

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

Grazie .to_i lavorato per me. –

+0

Se si desidera la differenza in ore, è possibile utilizzare: 'difference_in_hours = (self.to_date - self.from_date) .to_f * 24' – pisaruk

1

Si può anche lavorare nella vista con:

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

Risposta migliore. Grazie – Abram