Ho provato a fare qualcosa di simile
Time.now + 5.days
ma non funziona, anche se ricordo vagamente di aver visto e di essere rimasto molto colpito dall'essere in grado di fare qualcosa di simile 2.years
ecc.
Come posso farlo in Rails 3?
Ho provato a fare qualcosa di simile
Time.now + 5.days
ma non funziona, anche se ricordo vagamente di aver visto e di essere rimasto molto colpito dall'essere in grado di fare qualcosa di simile 2.years
ecc.
Come posso farlo in Rails 3?
Risposte:
Uso
Time.now + 10.days
o anche
10.days.from_now
Entrambi funzionano decisamente. Sei sicuro di essere in Rails e non solo in Ruby?
Se sei sicuramente in Rails, da dove stai cercando di eseguirlo? Notare che Active Support deve essere caricato.
Time.now + 10.days
preleva sempre il fuso orario del sistema mentre 10.days.from_now
rileva il fuso orario UTC se non è impostato nulla in rails config.
Time.zone.now
al posto di Time.now
.
days
, years
, Ecc, sono parte integrante del sostegno attivo, quindi questo non funzionerà in irb
, ma dovrebbe funzionare in rails console
.
require 'active_support/time'
all'inizio della sessione o prima di usare i suoi comandi
Alcune altre opzioni, solo per riferimento
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
Elenca solo tutte le opzioni che conosco:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
Quindi ora, qual è la differenza tra loro se ci interessa il fuso orario:
[1, 4]
Con fuso orario di sistema[2, 3]
Con config timezone della tua app Rails[5]
Solo data nessuna ora inclusa nel risultatoProva questo su Rails
Time.new + 10.days
Prova questo su Ruby
require 'date'
DateTime.now.next_day(10).to_time