2016-08-09 26 views
1

Ich subtrahiere zwei Daten und ich möchte die Differenz in Tage umgewandelt werden. Wie kann ich es erreichen? Ich mache es wie unten und es gibt das Ergebnis unten, wie kann ich das Ergebnis als Tage konvertieren?Datum Diiference in Tagen

article.created_at 
#=> Fri, 05 Aug 2016 16:53:01 HKT +08:00 

message.created_at 
#=> Fri, 28 Aug 2015 07:59:43 HKT +08:00 

article.created_at - message.created_at 
#=> 29667198.69661808 
+0

Nicht sicher, was Ihr Datumsformat ist, aber ich würde versuchen mit 'article.created_at.strftime ("% d ")'. Dies wird eine Zeichenkette zurückgeben, also wahrscheinlich in Ganzzahl umwandeln, wenn Sie etwas berechnen wollen –

+0

Das sind die Werte von Daten, die ich subtrahieren möchte. Und ich möchte, dass das Ergebnis als Tage berechnet wird. –

Antwort

1

sollten Sie in der Lage sein, nur von einem Tag zu teilen ...

(article.created_at - message.created_at)/1.day 
#=> 343.3703472222222 
+0

Danke! Es klappt! –

1

können Sie konvertieren Sie Ihre Time (oder TimeWithZone) Objekte zu Date Instanzen und rufen Date#-, die den Unterschied in Tagen zurückgibt:

t1 = Time.parse('05 Aug 2016 16:53:01') 
t2 = Time.parse('28 Aug 2015 07:59:43') 

t1.to_date - t2.to_date 
#=> (343/1) 
+0

Danke @stefan! –

+0

'.to_i' für Ruby> = 2.0 – hlcs