Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/08/2012, 11:20
Avatar de carlos_belisario
carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Verificar fechas para hacer calculos

estaba un poco fastidiado y quise hacer un poco y quería hacer unas pruebas con closures verifica
Código PHP:
Ver original
  1. $comparacionRango = function(array $intervalo, array $intervaloComparar) {
  2.     $desde1 = new DateTime($intervalo[0]);
  3.     $hasta1 = new DateTime($intervalo[1]);
  4.     $desde2 = new DateTime($intervaloComparar[0]);
  5.     $hasta2 = new DateTime($intervaloComparar[1]);
  6.     $diff = $desde1->diff($hasta1);
  7.     for($i = 0; $i <= $diff->days; $i++) {    
  8.         if($desde1->getTimestamp() >= $desde2->getTimestamp() && $desde1->getTimestamp() <= $hasta2->getTimestamp()) {
  9.             $return[$desde1->format('d-m-Y')] =  "dentro del rango <br/>";
  10.         } else {
  11.             $return[$desde1->format('d-m-Y')] = "fuera del rango<br />";
  12.         }
  13.         $desde1->modify("+1 day");        
  14.     }
  15.     return $return;
  16. };
  17.  
  18. $retorno = $comparacionRango(array('2012-01-01', '2012-01-31'), array('2012-01-15', '2012-02-15'));
  19. 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
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Última edición por carlos_belisario; 08/08/2012 a las 13:58