¿Cómo cuento el número de días entre estas dos fechas?
start_date = Date.parse "2012-03-02 14:46:21 +0100"
end_date = Date.parse "2012-04-02 14:46:21 +0200"
Con las clases Date (y DateTime) puede hacer (end_date - start_date).to_ipara obtener el número de días de diferencia.
TimeSin embargo, los objetos devuelven segundos.Timeobjetos, no aDateobjetos. ¿Quizás podría actualizar los nombres en su comentario para reflejar que no son fechas?Asumiendo eso
end_dateystart_dateambos son de claseActiveSupport::TimeWithZoneen Rails, puede usar:fuente
(Time.zone.now.to_date - 23.hours.ago.to_date).to_i, da 1 y debería ser 0Time.zone.now.to_datedevuelve "Mié, 15 de noviembre de 2017", mientras que23.hours.ago.to_datedevuelve "Mar, 14 de noviembre de 2017". La diferencia en el número de días es y debe ser 1 a menos que haya ejecutado su código en la hora anterior a la medianoche.Rails tiene algunos ayudantes integrados que pueden resolver esto por usted. Una cosa a tener en cuenta es que esto es parte de los Actionview Helpers, por lo que no estarán disponibles directamente desde la consola.
Prueba esto
fuente
Seguí obteniendo resultados en segundos, así que esto funcionó para mí:
fuente
1.dayno esrubycomo OP solicitado (en las etiquetas). EsRails, o más específicoactive support, aunquecreated_ates básicamente unModelmétodo en elRailsmodo ..para obtener el número de días en un rango de tiempo (solo un recuento de todos los días)
para obtener el número de días entre 2 fechas
fuente
Ninguna de las respuestas anteriores (a esta fecha) da la diferencia correcta en días entre dos fechas.
El que más se acerca es aquel quequent . Una respuesta completa convertiría
to_iy luego dividiría:En el ejemplo específico de la pregunta, no se debe analizar
Datesi el tiempo transcurrido es relevante. Usar en suTime.parselugar.fuente
Para tener el número de días completos entre dos fechas (
DateTimeobjetos):fuente
Para obtener el número de días de diferencia por dos fechas:
fuente
fuente