Estoy empezando con una cita 2010-05-01
y terminando con 2010-05-10
. ¿Cómo puedo recorrer todas esas fechas en PHP?
207
Requiere PHP5.3:
$begin = new DateTime('2010-05-01');
$end = new DateTime('2010-05-10');
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("l Y-m-d H:i:s\n");
}
Esto generará todos los días en el período definido entre $start
y $end
. Si desea incluir el 10, establezca el $end
11. Puede ajustar el formato a su gusto. Consulte el Manual de PHP para DatePeriod .
$begin->setTime(0,0); $end->setTime(12,0);
o inicializar con la hora del día de la fecha de inicio, ya que cualquier momento posterior a la fecha de finalización incluirá la fecha de finalización en el bucle. No es la solución más elegante, pero es la mejor opción siempre que no haya una bandera adecuada.Esto también incluye la última fecha
Si no necesita la última fecha, simplemente retírela
=
de la afección.fuente
$begin
será diferente después del ciclo. Este bucle modifica el objeto creado pornew DateTime( "2015-07-03" )
. Por lo tanto, por qué debería usar las versiones DateTimeImmutable. Pero necesita algunas modificaciones adicionales para usarlos.La conversión a marcas de tiempo de Unix facilita las matemáticas de fecha en php:
Cuando use PHP con una zona horaria con horario de verano, asegúrese de agregar una hora que no sea las 23:00, 00:00 o 1:00 para protegerse contra los días que se saltan o repiten.
fuente
Copie de la muestra php.net para el rango inclusivo :
fuente
o
fuente
Aquí hay otro simple:
Ejemplo:
fuente
Usuario esta función: -
Uso / llamada de función: -
Incrementar en un día: -
Incremento por mes: -
use el tercer parámetro si desea establecer el formato de fecha: -
fuente
aquí hay una manera:
¡El resultado de $ weekendsInMoth es una variedad de días de fin de semana!
fuente
También puede iterar de esta manera,
$_POST['date']
puede ser abollado desde su aplicación o sitio web. En lugar de$_POST['date']
hacerlo, también puede colocar su cadena aquí"21-12-2019"
. Ambos funcionarán.fuente
Si usa Laravel y desea usar Carbon, la solución correcta sería la siguiente:
Recuerde agregar:
fuente
fuente