Intenté hacer algo como
Time.now + 5.days
pero eso no funciona, aunque recuerdo vagamente haber visto y estar muy impresionado con poder hacer algo como, 2.years
etc.
¿Cómo hago eso en Rails 3?
Intenté hacer algo como
Time.now + 5.days
pero eso no funciona, aunque recuerdo vagamente haber visto y estar muy impresionado con poder hacer algo como, 2.years
etc.
¿Cómo hago eso en Rails 3?
Respuestas:
Utilizar
Time.now + 10.days
o incluso
10.days.from_now
Ambos definitivamente funcionan. ¿Estás seguro de que estás en Rails y no solo en Ruby?
Si definitivamente estás en Rails, ¿desde dónde intentas ejecutar esto? Tenga en cuenta que se debe cargar Active Support.
Time.now + 10.days
siempre recoge la zona horaria de su sistema, mientras 10.days.from_now
que recogerá la zona horaria UTC si no se establece nada en la configuración de rieles.
Time.zone.now
en lugar de Time.now
.
days
, years
, Etc., son parte de la ayuda activa, por lo que esto no funcionará en irb
, pero debería funcionar en rails console
.
require 'active_support/time'
al comienzo de la sesión o antes de usar sus comandos
Algunas otras opciones, solo como referencia.
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
Solo enumera todas las opciones que conozco:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
Entonces, ¿cuál es la diferencia entre ellos si nos preocupamos por la zona horaria?
[1, 4]
Con zona horaria del sistema[2, 3]
Con la zona horaria de configuración de su aplicación Rails[5]
Solo fecha sin hora incluida en el resultadoPrueba esto en Rails
Time.new + 10.days
Prueba esto en Ruby
require 'date'
DateTime.now.next_day(10).to_time