2012-08-13 13 views
28

Soy nuevo en Ruby on Rails y me atascaron las fechas. Usé Time.now para obtener la hora actual. Ahora quiero averiguar las fechas de cierre y finalización para la semana actual y el mes actual. Por ejemplo:Rieles: obtenga las fechas de inicio y finalización de la semana actual y del mes

Si Time.now me devuelve -

2012-08-13 15:25:35 +0530 

A continuación, las fechas de inicio y fin de la semana en curso son:

2012-08-12 - 2012-08-18 

A continuación, las fechas de inicio y finalización para el mes en curso son:

2012--08-01 - 2012-08-31 

Estoy implementando el mismo usando el código:

Time.now.wday 
=> 1 

Time.now - 1.day 
=> 2012-08-12 15:31:44 +0530 

Time.now + 5.day 
=> 2012-08-19 15:32:38 +0530 

y así sucesivamente ... Pero no me parece una forma conveniente de hacerlo. Estoy segura de que Ruby on Rails tiene una mejor solución. ¿Puede alguien sugerir que averiguar lo mismo ..

Respuesta

53

En lugar de utilizar Time.now

Utilice el código siguiente para obtener sus consultas resuelto

d = Date.today 

d.at_beginning_of_week 
#Mon, 13 Aug 2012 
d.at_beginning_of_week.strftime 
#"2012-08-13" 
d.at_beginning_of_week.strftime("%d") 
#"13" -> To print the date. 

Del mismo modo se pueden encontrar múltiples métodos en la Date Class

+0

Esta respuesta ha sido allí por un tiempo , Estoy usando Rails 5.0.1 en el que también puedo usar 'Time.now.at_beginning_of_ *', solo pensé en agregarlo como un comentario para el futuro lector;) – SidOfc

Cuestiones relacionadas