Ver Mensaje Individual
  #19 (permalink)  
Antiguo 10/08/2012, 09:05
Avatar de kimmy
kimmy
 
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Verificar fechas para hacer calculos

Hola cambié la consulta asi:

Código PHP:
Ver original
  1. $fechas = array();
  2.      
  3.     $rs2 = mysql_query("SELECT * FROM detalle_temp_alta WHERE id_posada='8' AND fecha_temp_alta='$desde2' or  fecha_temp_alta='$hasta2'");
  4.     // Después, verificas los resultados de tu consulta (con BETWEEN)
  5.     while($row = mysql_fetch_assoc($rs2)) {
  6.         // Simplemente marcas la fecha como temporada alta (true)
  7.         $fechas[$row['fecha_temp_alta']] = true;
  8.        
  9.         }
  10.      
  11.     // Para comparar
  12.     if($fechas[$desde2]) {
  13.         echo 'temporada alta';
  14.     } else {
  15.         echo 'No es temporada alta';
  16.     }

De esta forma si me verifica la fecha, pero el problema es que solo verifica una fecha y necesito verificar el intervalo completo y si esta cada una en temporada alta o baja multiplicar por precio temporada alta o precio temporada baja.

Esta funcion que me indico carlos_belisario lo hace pero no funciona en mi version de php:

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>";

Existe otra funcion u otra forma para que lo pueda hacer en mi version 5.2??

Gracias
__________________
Caminando con el corazón partío