estaba un poco fastidiado y quise hacer un poco y quería hacer unas pruebas con closures
verifica
Código PHP:
Ver original$comparacionRango = function(array $intervalo, array $intervaloComparar) { $desde1 = new DateTime($intervalo[0]);
$hasta1 = new DateTime($intervalo[1]);
$desde2 = new DateTime($intervaloComparar[0]);
$hasta2 = new DateTime($intervaloComparar[1]);
$diff = $desde1->diff($hasta1);
for($i = 0; $i <= $diff->days; $i++) {
if($desde1->getTimestamp() >= $desde2->getTimestamp() && $desde1->getTimestamp() <= $hasta2->getTimestamp()) {
$return[$desde1->format('d-m-Y')] = "dentro del rango <br/>";
} else {
$return[$desde1->format('d-m-Y')] = "fuera del rango<br />";
}
$desde1->modify("+1 day");
}
return $return;
};
$retorno = $comparacionRango(array('2012-01-01', '2012-01-31'), array('2012-01-15', '2012-02-15')); echo "<pre>";print_r($retorno);echo "</pre>";
el resultado de eso fue
Cita: Array
(
[01-01-2012] => fuera del rango
[02-01-2012] => fuera del rango
[03-01-2012] => fuera del rango
[04-01-2012] => fuera del rango
[05-01-2012] => fuera del rango
[06-01-2012] => fuera del rango
[07-01-2012] => fuera del rango
[08-01-2012] => fuera del rango
[09-01-2012] => fuera del rango
[10-01-2012] => fuera del rango
[11-01-2012] => fuera del rango
[12-01-2012] => fuera del rango
[13-01-2012] => fuera del rango
[14-01-2012] => fuera del rango
[15-01-2012] => dentro del rango
[16-01-2012] => dentro del rango
[17-01-2012] => dentro del rango
[18-01-2012] => dentro del rango
[19-01-2012] => dentro del rango
[20-01-2012] => dentro del rango
[21-01-2012] => dentro del rango
[22-01-2012] => dentro del rango
[23-01-2012] => dentro del rango
[24-01-2012] => dentro del rango
[25-01-2012] => dentro del rango
[26-01-2012] => dentro del rango
[27-01-2012] => dentro del rango
[28-01-2012] => dentro del rango
[29-01-2012] => dentro del rango
[30-01-2012] => dentro del rango
[31-01-2012] => dentro del rango
)
ahora lo que quieras hacer tu cuando esta dentro o fuera del rango queda de ti, saludos