Hola, bueno, este es un pequeño aporte a la comunidad ;D
function domingos($fechaInicio,$fechaFin)
{
$dias=array(); //creo un arreglo para devolver los domingos
$fecha1=date($fechaInicio);
$fecha2=date($fechaFin);
$fecha=date("Y-m-d",strtotime($fecha1)); //paso a date para darle formato
$fechaTime=strtotime($fecha1); //paso a hora unix fechaInicio
while($fecha <= $fecha2) //verifico que no me haya pasado de la fecha fin
{
//Ahora, el Unix timestamp para el primer lunes
//después de fecha 1:
$proximo_lunes=strtotime("next Monday",$fechaTime);
$proximo_domingo=strtotime("next Sunday",$fechaTime);
$fechaDomingo=date("Y-m-d",$proximo_domingo);
if($fechaDomingo <= $fechaFin)
{
$dias[$fechaDomingo]=$fechaDomingo;
}
else
{
break;
}
$fechaTime=$proximo_lunes;
$fecha=date("Y-m-d",$proximo_lunes);
}
return $dias;
}//fin de domingos
$datos=domingos("2008-01-01","2008-12-31"); //creo un array que tendra las fechas
foreach($datos as $nombre_campo => $valor){
$asignacion = 'Domingo"' . $nombre_campo . ": " . $valor . "';<br>";
echo $asignacion;
}//imprimo lo que esta en el array
Espero que les sirva... ya a mi me ha funcionado bien :rolleyes: pero si ven algun problema avisen
Hola! bueno, después de hacer varias pruebas me di cuenta que si la fecha de inicio era un domingo ese domingo no lo contaba, asi que cambie el codigo:
El cambio básicamente fue: la fecha de inicio la puse a que iniciara el dia de ayer, para así al hacer la búsqueda, del "next monday" lo encontrara.
El otro cambio que le hice fue que ya busco es por domingo y no por lunes.
Exito a todos, espero que les sirva
/*Funcion que devuelve los dias domingo que caen entre 2 fechas*/
function contarDomingos($fechaInicio,$fechaFin)
{
$dias=array();
$fecha1=date($fechaInicio);
$fecha2=date($fechaFin);
$fechaTime=strtotime("-1 day",strtotime($fecha1));//Les resto un dia para que el next sunday pueda evaluarlo en caso de que sea un domingo
$fecha=date("Y-m-d",$fechaTime);
while($fecha <= $fecha2)
{
$proximo_domingo=strtotime("next Sunday",$fechaTime);
$fechaDomingo=date("Y-m-d",$proximo_domingo);
if($fechaDomingo <= $fechaFin)
{
$dias[$fechaDomingo]=$fechaDomingo;
}
else
{
break;
}
$fechaTime=$proximo_domingo;
$fecha=date("Y-m-d",$proximo_domingo);
}
return $dias;
}//fin de domingos