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.yearsecc.
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.yearsecc.
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.dayspreleva sempre il fuso orario del sistema mentre 10.days.from_nowrileva il fuso orario UTC se non è impostato nulla in rails config.
Time.zone.nowal 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