
Vamos a hablar sobre como podemos obtener un periodo fechas, ya sean días, meses o años, utilizando PHP.
La verdad que una vez que sabemos como, veremos que es muy fácil y que podemos dar el juego que necesitemos para obtener un intervalo concreto.
Para ello vamos a usar la función DatePeriod de PHP. A continuación pongo un ejemplo y os explico que es lo que hace.
Contenido
Código para obtener un periodo de 6 días
1 2 3 4 5 | $period = new DatePeriod( new DateTime(), // Donde empezamos a contar el periodo new DateInterval('P1D'), // Definimos el periodo a 1 día 6 // Aplicamos el intervalo 6 veces ); |
Guardamos en la variable period los 6 periodos que hemos solicitado.
A la función DatePeriod le pasamos tres variables:
– La primera variable, la fecha, en formato DateTime, desde la cual partiremos a hacer el periodo.
– La segunda variable, le indicaremos como queremos que sea el periodo, si días, meses, años y de cuanto es el periodo, en este caso hemos puesto 1 día, pero podríamos poner por ejemplo P3M aplicando un periodo de 3 meses.
– Y al final, le pasamos las veces que queremos que se haga el periodo, en este caso le pasamos 6 veces, para obtener los próximos 6 días, pero si lo hubiéramos aplicado un periodo de 3 meses y una cantidad de 4, obtendríamos los próximos cuatro trimestres.
Para obtener el resultado de lo que hemos hecho, simplemente hay que recorrer el array que nos devuelve DatePeriod y mostrarlo.
Mostrar el periodo seleccionado
1 2 3 | foreach ($period as $date) { echo $date->format('l')."<br>"; } |
Aquí estaremos mostrando los días de la semana, desde el día actual.
Podemos mostrar el resultado como queramos, si por ejemplo quisiéramos mostrar la fecha completa, lo haríamos de la siguiente manera.
Mostrar el periodo seleccionado mostrando la fecha
1 2 3 | foreach ($period as $date) { echo $date->format('d/m/Y')."<br>"; } |
Y aquí lo que mostramos es la fecha en concreto, del intervalo que hemos seleccionado anteriormente.
Que al final será tan simple como que muestre la fecha completa para los próximos 6 días, ya que hemos puesto un intervalo de 1 día y que se repita 6 veces.
Espero que os haya servido y os sea útil para vuestros códigos 😉
Y recordad! No olvidéis comentar! Vuestro código y en el Blog 😉