Wie mache ich das in Ruby Time.now + 10.hours
?
Gibt es ein Äquivalent für secs
und mins
? Zum Beispiel:
Time.now + 15.mins
ruby-on-rails
ruby
time
Keruilin
quelle
quelle
10 + Time.now
:TypeError: Time can't be coerced into Fixnum
aberTime.now + 10
funktioniert .. für alle , die das gleiche Problem haben;)Antworten:
Ruby (die Programmiersprache) hat nicht
10.hours
, das istActiveSupport
als Teil von Ruby on Rails (das Web-Framework). Und ja, es hat beidesminutes
undseconds
Methoden.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
quelle
Wenn Sie ActiveSupport verwenden, suchen Sie nach dem vollständigen
.minutes
und.seconds
.Time.now + 10.minutes Time.now + 10.seconds
quelle
Auch in ActiveSupport können Sie Folgendes tun:
10.minutes.from_now 10.minutes.ago
quelle
Ich denke, Sie sprechen von Erweiterungen, die von Rails hinzugefügt wurden. Ich denke du brauchst
15.minutes
.Weitere Informationen finden Sie in den Active Support Core-Erweiterungen für Datum, Datum und Uhrzeit .
quelle
Zeitobjekt
time = Time.now
Hinzufügen von Minuten zu einem Zeitobjekt:
time + 5.minutes
quelle