So fügen Sie einem Zeitobjekt Minuten hinzu

79

Wie mache ich das in Ruby Time.now + 10.hours?

Gibt es ein Äquivalent für secsund mins? Zum Beispiel:

Time.now + 15.mins
Keruilin
quelle
1
Es ist nicht anders herum funktionieren: 10 + Time.now: TypeError: Time can't be coerced into Fixnumaber Time.now + 10funktioniert .. für alle , die das gleiche Problem haben;)
Yo Ludke

Antworten:

144

Ruby (die Programmiersprache) hat nicht 10.hours, das ist ActiveSupportals Teil von Ruby on Rails (das Web-Framework). Und ja, es hat beides minutesund secondsMethoden.

Die Time#+(+ -Methode für Zeitinstanzen) gibt jedoch eine neue Zeitinstanz zurück, die so viele Sekunden in der Zukunft liegt. Ohne Ruby on Rails-Zucker können Sie also einfach Folgendes tun:

irb> t = Time.now
#=> 2011-08-03 22:35:01 -0600

irb> t2 = t + 10               # 10 Seconds
#=> 2011-08-03 22:35:11 -0600

irb> t3 = t + 10*60            # 10 minutes
#=> 2011-08-03 22:45:01 -0600

irb> t4 = t + 10*60*60         # 10 hours
#=> 2011-08-04 08:35:01 -0600
Phrogz
quelle
@NailsonLandim, könnten Sie gut finden Timerizer nützlich. "Rails-Zeitsyntax ohne Rails."
Jeff Dickey
Der entsprechende Teil der Core Extensions-Dokumentation istguides.rubyonrails.org/… und die folgenden beiden Abschnitte.
Der Blechmann
76

Wenn Sie ActiveSupport verwenden, suchen Sie nach dem vollständigen .minutesund .seconds.

Time.now + 10.minutes
Time.now + 10.seconds
twe4ked
quelle
20

Auch in ActiveSupport können Sie Folgendes tun:

10.minutes.from_now

10.minutes.ago
Mahi-Mann
quelle
1

Zeitobjekt

time = Time.now

Hinzufügen von Minuten zu einem Zeitobjekt:

time + 5.minutes

Sushant
quelle