Ich habe versucht, so etwas zu tun
Time.now + 5.days
aber das funktioniert nicht, obwohl ich mich vage daran erinnere, etwas gesehen zu haben und sehr beeindruckt zu sein, so etwas tun zu können 2.years
usw.
Wie mache ich das in Rails 3?
ruby-on-rails
datetime
ruby-on-rails-3
activesupport
Yuval Karmi
quelle
quelle
Antworten:
Verwenden
oder auch
Beides funktioniert definitiv. Bist du sicher, dass du in Rails bist und nicht nur in Ruby?
Wenn Sie definitiv in Rails sind, von wo aus versuchen Sie dies auszuführen? Beachten Sie, dass Active Support geladen werden muss.
quelle
Time.now + 10.days
Nimmt immer Ihre Systemzeitzone auf, während10.days.from_now
die UTC-Zeitzone erfasst wird, wenn in der Rails-Konfiguration nichts festgelegt ist.Time.zone.now
anstelle von zu verwendenTime.now
.days
,years
Usw. sind Teil der aktiven Unterstützung, so dass diese nicht in funktionierenirb
, aber es sollte in Arbeitrails console
.quelle
require 'active_support/time'
zu Beginn der Sitzung oder bevor Sie seine Befehle verwendenDies funktioniert definitiv und ich verwende dies überall dort, wo ich Tage zum aktuellen Datum hinzufügen muss:
quelle
Einige andere Optionen, nur als Referenz
Listen Sie einfach alle mir bekannten Optionen auf:
Was ist nun der Unterschied zwischen ihnen, wenn wir uns für die Zeitzone interessieren:
[1, 4]
Mit Systemzeitzone[2, 3]
Mit Konfigurationszeitzone Ihrer Rails-App[5]
Datum nur keine Uhrzeit im Ergebnis enthaltenquelle
Versuchen Sie dies auf Schienen
Versuchen Sie dies auf Ruby
quelle
Versuchen Sie dies auf Ruby. Es wird ein neues Datum / eine neue Uhrzeit mit der angegebenen Anzahl von Tagen in der Zukunft zurückgegeben
quelle