Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/03/2011, 19:03
Avatar de Marvin
Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Respuesta: Ayuda con fechas en php

El tema es que estas tratando de hacer el codigo sin incorporar los datos que van entre ellas.

O sea... si tienes una consulta de la cual generas una tabla debes preguntar en la consulta, si la fecha es igual... me explico:
Código PHP:
Ver original
  1. //tomo los valores de las fecha introducidas
  2. $fI = $_GET["fechaI"];
  3. $fT = $_GET["fechaF"];
  4. //ahora vamos a hacer un arreglo con las fechas que existen entre las fechas introducidas
  5. $arrFI = explode('-',$fI);
  6. $arrFT = explode('-',$fT);
  7. //convertimos cada dia para que sea mas facil obtener los dias entre ellos
  8. //estoy asumiendo que la fecha es dd-mm-yyyy
  9. $finic = mktime(12,0,0,$arrFI[1],$arrFI[0],$arrFI[2]);
  10. $ffina = mktime(12,0,0,$arrFT[1],$arrFT[0],$arrFT[2]);
  11. //aca tenemos los dias entre las dos fechas
  12. $x = abs(floor(($ffina - $finic)/60/60/24));
  13. //contador
  14. $y=0;
  15. for($a=0;$a<=$x;$a++){
  16.     //a una fecha temporal le sumamos la cantidad de dias
  17.     $ftemp = mktime(12,0,0,$arrFI[1],$arrFI[0]+$a,$arrFI[2]);
  18.     //creamos el arreglo con las fechas
  19.     //ojo que aca van a agregarse los dos dias (tanto el de inicio como el de fin)
  20.     $arrFechas['fecha'][$y] = date('d-m-Y',$ftemp);
  21.     //le creo un flag para activarla si se encuentra en los datos
  22.     $arrFechas['activa'][$y] = false;
  23.     $y++;
  24. }
  25. $sql = "SELECT * FROM tabla WHERE fecha BETWEEN '$fI' AND '$fT'";
  26. $result = mysql_query($sql);
  27. while($data = mysql_fetch_array($result)){
  28.     //aca se imprime tu tabla como siempre
  29.     /* CODIGO DE TU TABLA */
  30.     //ahora vamos a la celda en blanco...
  31.     //buscamos que clave es la que tiene la fecha
  32.     $clave = array_search($data['fecha'],$arrFechas['fecha']);
  33.     //agregamos la linea en blanco y activamos la fecha si no esta activada
  34.     if(!$arrFechas['activa'][$indice]){
  35.         $arrFechas['activa'][$indice] = true;
  36.         echo '<tr><td>&nbsp;</td></tr><!--impresion de celda vacia-->';
  37.     }//aca no necesitas hacer nada mas
  38. }

Prueba a ver si esto soluciona tu problema.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!