ruby-on-rails - span - rails generate html in helper
Convertir ActiveSupport:: TimeWithZone a DateTime (2)
Pensé que podría ser útil actualizar esta respuesta ya que estaba buscando esto recientemente. La forma más fácil de lograr esta conversión es usar la función .to_datetime ().
p.ej
5.hours.from_now.class # => ActiveSupport::TimeWithZone
5.hours.from_now.to_datetime.class # => DateTime
ref: http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html#method-i-to_datetime
Estoy tratando de pasar cada N días entre dos fechas. Intenté el siguiente código pero no funcionó porque startDate y endDate son objetos ActiveSupport :: TimeWithZone y no objetos DateTime como pensé.
startDate.step(endDate, step=7) { |d| puts d.to_s}
min.step(max, step=stepInt){ |d|
puts d.to_s
}
¿Cómo convierto el objeto TimeWithZone en un DateTime?
DateTime
es una clase antigua que generalmente desea evitar usar. Time
y Date
son las dos que desea utilizar. ActiveSupport::TimeWithZone
actúa como el Time
.
Para pasar sobre las fechas, es probable que desee tratar con los objetos de Date
. Puede convertir una Time
(o ActiveSupport::TimeWithZone
) en una Date
con Time#to_date
:
from.to_date.step(to.to_date, 7) { |d| puts d.to_s }