Foros del Web » Programando para Internet » PHP »

mostrar horas faltantes de array y pintar tabla

Estas en el tema de mostrar horas faltantes de array y pintar tabla en el foro de PHP en Foros del Web. Hola! primero, un gustazo unirme a este foro ya que la busqueda del conocimento es mas fácil si se comparte, mi situacion es esta: tengo ...
  #1 (permalink)  
Antiguo 12/03/2011, 09:40
 
Fecha de Ingreso: marzo-2011
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
mostrar horas faltantes de array y pintar tabla

Hola! primero, un gustazo unirme a este foro ya que la busqueda del conocimento es mas fácil si se comparte, mi situacion es esta: tengo el siguiente array ordenado por horas.

Código PHP:
Array
(
    [
08:00:00] => Array
        (
            [
0] => 08:00:00
            
[1] => 08:30:00
            
[2] => sandra donovan
            
[3] => Rocio
        
)

    [
10:00:00] => Array
        (
            [
0] => 10:00:00
            
[1] => 10:45:00
            
[2] => paloma san basilio
            
[3] => Rocio
        
)

   
        ) 
pero desearia mostrar los datos de esta forma

08:00:00 08:30:00

08:30:00 08:45:00
08:45:00 09:00:00
09:00:00 09:15:00
09:15:00 09:30:00
09:30:00 09:45:00


10:00:00 10:45:00

es decir que el espacio entre las horas de los array me los muestre de 15 en 15 minutos, ya llevo dos días tratando de resolverlo y se me rebela, el problema principal es el de reconocer las horas intermedias entre los horarios del array que si estan dentro del lapso de tiempo

es decir de las 10:00:00 a las 10:45:00 no me debe de mostrar 10:15:00 ni 10:30:00
agradezco la ayuda u orientación que me puedan proporcionar, mil gracias de antemano!
  #2 (permalink)  
Antiguo 12/03/2011, 11:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: mostrar horas faltantes de array y pintar tabla

¿Cómo lo estad haciendo?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 12/03/2011, 11:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: mostrar horas faltantes de array y pintar tabla

si mira gracias por contestarme hasta ahorita estioy construyendola asi pero se me siguen repitiendo datos para ser preciso el ultimo de de los rangos faltantes

asi

08:00:00

8:30:00 - 08:45:00
no deberia mostrarse->8:45:00 - 09:00:00

08:45:00

9:15:00 - 09:30:00
9:30:00 - 09:45:00

aqui abajo estan las funciones que uso

Código PHP:
 $this->celda('08:00:00','08:15:00',$myArray); 
y la función celda es esta

Código PHP:

function celda($hora_a_comparar1,$hora_a_comparar2,$arreglo){


$rangos=$this->create_time_range($hora_a_comparar1,$hora_a_comparar2,'15 mins');
    
foreach (
$rangos as $key => $time)
    
$hora_perdidas='<li>'.date('g:i:s'$time).' - '.$this->minDespues(date('g:i:s'
$time)).'</li>';    

if( (
$this->in_array_recursive($hora_a_comparar1,$arreglo)>0) ){
    
        echo 
'<strong style="color:#08c">'.$hora_a_comparar1.'</strong>';
        
        }else{
            
            
            if(
$hora_a_comparar1==$hora_perdidas){
            echo 
'';
            }else{
            
            echo 
$hora_perdidas;
            }
            }


funcion in_array_recursive:

Código PHP:
function in_array_recursive($needle$haystack) {

    
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($haystack));

    foreach(
$it as $element) {
        if(
$element == $needle) {
            return 
true;
        }
    }

    return 
false;

Código PHP:
function create_time_range($start$end$by='15 mins') {

    
$start_time strtotime($start);
    
$end_time   strtotime($end);

    
$current    time();
    
$add_time   strtotime('+'.$by$current);
    
$diff       $add_time-$current;

    
$times = array();
    while (
$start_time $end_time) {
        
$times[] = $start_time;
        
$start_time += $diff;
    }
    
$times[] = $start_time;
    return 
$times;

si me pudieras hechas una mano seria excelente, ya casi esta, pero este detalle me detiene aun, gracias de antemano.

Etiquetas: horas, pintar, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:43.