Script en php – como sumar días a una fecha y como crear array con el
primer día de cada mes de un año determinado (se recibe como parámetro el año)
Estilo
orientado a objetos : public DateTime DateTime::modify( string $modify )
sumar días a una fecha con modify()
Esta es la instruccion del archivo php. La variable $fecha recibe el objeto con la fecha/hora, con el comando new DateTime.
Posterior a eso, en el ciclo for incrementamos los dias con el comando
$fecha->modifiy(), y el parametro '+1 day', '+2 day', '+3 day', '+4 day', '+5 day', '+6 day', '+7 day'
<?php
echo " ** fin del recorrido ** <br><br>";
$hoy = date('Y-m-d');
echo "fecha de hoy =" . $hoy . " <br> ";
$fecha = new DateTime( $hoy );
$fecha->modify('+7 day');
echo "Agregar +7 dia =" . $fecha->format('Y-m-d h:m:s') . " <br> ";
for
($i=1;$i<=7;$i++){
$avance = '+'.$i .' day';
$fecha->modify($avance);
echo "Agregar +$i dia
=" . $fecha->format('Y-m-d h:m:s') . " <br> ";
}
?>
Resultado del script PHP, ejecutado en el navedador.
Ten en cuenta que debes tener en ejecucion el Servidor Web, en mi caso Apache, para realizar tus pruebas.
crear array con el primer día de cada mes de un año determinado
<?php
$arraymes =
array( 'Enero','Febrero','Marzo',
'Abril','Mayo', 'Junio',
'Julio','Agosto','Septiembre',
'Octubre','Noviembre','Diciembre');
$arraydias =
array( 'Lunes','Martes','Miercoles',
'Jueves','Viernes','Sábado',
'Domingo');
function
obtener_1DMY($fyear){
// funcion obtener primer dia
del mes con avance de mes
$arrayprimermes = array();
$dt
= new DateTime($fyear . '-01-01');
for
($i=1; $i<=12; $i++){
array_push($arrayprimermes,
$dt->format('Y-m-d'));
$dt->modify("+1
month");
}
return
$arrayprimermes;
} // fin funcion
$Year = '2016' ;
$array1erDMY = obtener_1DMY($Year);
$i=0;
foreach ($array1erDMY as $fecha){
$dt_fecha
= new DateTime($fecha);
echo
"El primer dia de " . $arraymes[$i]. " sera el " .
$dt_fecha->format('d/m/Y') . " caera un día " .
$arraydias[$dt_fecha->format('w')] ." <br>" ;
$i++;
}
Resultado del script PHP:
Obtener primer día simplificado
$fecha = new DateTime();
$fecha->modify('first day of this month');
echo $fecha->format('d/m/Y'); // resultado 10/07/2017