tag span rails link_to generate content_tag content ruby-on-rails ruby datetime

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 }