Tomando el dia inicial y el final como trabajados,
la solución es la siguiente:
Código PHP:
<?php
function diasPorAnio($fechaInicio, $fechaFin)
{
list($dia1,$mes1,$anio1)=explode("/",$fechaInicio);
list($dia2,$mes2,$anio2)=explode("/",$fechaFin);
$anios=$anio1;
$total = 0;
while ($anio2>=$anios)
{
if ($anio2==$anios)
{
if ($anio1==$anios)
$parcial = round((strtotime("$anio2/$mes2/$dia2")-strtotime("$anio1/$mes1/$dia1"))/86400)+1;
else
$parcial = round((strtotime("$anio2/$mes2/$dia2")-strtotime("$anio2/1/1"))/86400)+1;
}
else
{
if ($anio1==$anios)
$parcial = round((strtotime("$anios/12/31")-strtotime("$anio1/$mes1/$dia1"))/86400)+1;
else
$parcial = round(((strtotime("$anios/12/31")-strtotime("$anios/1/1"))/86400))+1;
}
echo "$anios - $parcial <br>";
$anios = $anios + 1;
$total = $total + $parcial;
}
echo "Total de dias: $total <br>";
}
$fechaInicio = "01/11/2010";
$fechaFin = "20/11/2010";
echo "Período del $fechaInicio al $fechaFin <br>";
diasPorAnio($fechaInicio, $fechaFin);
echo "<br><br>";
$fechaInicio = "13/07/2005";
$fechaFin = "20/07/2008";
echo "Período del $fechaInicio al $fechaFin <br>";
diasPorAnio($fechaInicio, $fechaFin);
?>
Resultado:
Cita: Período del 01/11/2010 al 20/11/2010
2010 - 20
Total de dias: 20
Período del 13/07/2005 al 20/07/2008
2005 - 172
2006 - 365
2007 - 365
2008 - 202
Total de dias: 1104
__________________
Si no me aumentas karma, no me motivas a ayudarte