Foros del Web » Programando para Internet » PHP »

Combo de tiempo cada 15 min para Calendario

Estas en el tema de Combo de tiempo cada 15 min para Calendario en el foro de PHP en Foros del Web. Hola! Necesito hacer un listado de horarios que los divida cada 15 minutos. Ejemplo: 8.00 8.15 8.30 8.45 9.00 .... .... 18.00 Lo unico que ...
  #1 (permalink)  
Antiguo 12/06/2009, 08:02
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 10 meses
Puntos: 2
Combo de tiempo cada 15 min para Calendario

Hola!
Necesito hacer un listado de horarios que los divida cada 15 minutos.

Ejemplo:
8.00
8.15
8.30
8.45
9.00
....
....
18.00

Lo unico que me sale es que lo muestre cada 30 min de esta manera:

echo "<table>";
$b = 0;
for ($i = 8; $i < 23; $i++){
$m = ( !$b )?0:30;
$i = ( $b && ($m == 30))?$i-1:$i;
$hora = date( "H:i", mktime($i,$m) );
echo "<tr>";
echo "<td>" .$hora . "</td>";
echo "<td>";
VerReserva ($ano,$mes,$dia,$hora);
echo "</td>";
echo "</tr>";
$b = ( !$b )?1:0;
}
echo "</table>";

alguna idea ?
  #2 (permalink)  
Antiguo 12/06/2009, 08:46
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Combo de tiempo cada 15 min para Calendario

Hola,

a ver si te sirve con esto:

Código PHP:
<?php
$fecha 
date("Y-m-d");
$timestamp strtotime($fecha.' 00:00:00')-900;
$timestamp_limite strtotime($fecha.' 23:59:59');

echo 
"<table>";

do
{
        
$timestamp += 900;
        
$hora date("d-m-Y H:i:s"$timestamp);
        echo 
"<tr><td>".$hora."</td></tr>";        
} while (
$timestamp $timestamp_limite);

echo 
"</table>";
Saludos!

Synkronice

Última edición por Synkronice; 12/06/2009 a las 09:05 Razón: La variable $hora va antes del echo de la fila
  #3 (permalink)  
Antiguo 12/06/2009, 09:03
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Combo de tiempo cada 15 min para Calendario

con respuestas asi da gusto !!

muchas gracias ! funciona OK !
  #4 (permalink)  
Antiguo 12/06/2009, 09:06
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Combo de tiempo cada 15 min para Calendario

Hola maxi_lance,

acabo de editar el código porque me acabo de dar cuenta que la variable $hora va antes del echo de la fila. Corrígelo.

Saludos!
  #5 (permalink)  
Antiguo 14/06/2009, 22:23
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Combo de tiempo cada 15 min para Calendario

El codigo funciona perfecto. Lo probe siempre en localhost, pero al momento de subirlo al servidor, no me lee el combo.
Asi es como lo edite:

Código PHP:
<select name="hora" size="1" class="negro4">
              <option value="">Elegir Hora</option>
              <?
            $fecha 
date("Y-m-d");
            
$timestamp strtotime($fecha.'08:00:00')-900;
            
$timestamp_limite strtotime($fecha.'23:00:00');
            do
            {
                  
$timestamp += 900;
                  echo 
"<option value=".$hora.">".$hora."</option>";
                  
$hora date("H:i"$timestamp);
            } while (
$timestamp $timestamp_limite);
                   
            
?>
            </select>
echo $fecha;
echo "<br>" . $timestamp;
echo "<br>" . $timestamp_limite ;
Las ultimas dos lineas las puse para ver como toma las variables, y me doy cuenta que la variable $timestamp y $timestamp_limite las tomas como -1, y en el localhost lo hace correcto, como por ejemplo: 1245117600

Es una cuestion de lenguaje del servidor ?
  #6 (permalink)  
Antiguo 15/06/2009, 07:37
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Combo de tiempo cada 15 min para Calendario

A que te refieres con...

"y me doy cuenta que la variable $timestamp y $timestamp_limite las tomas como -1"

Que versión de PHP tienes en el servidor.

Saludos!
  #7 (permalink)  
Antiguo 15/06/2009, 08:05
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Combo de tiempo cada 15 min para Calendario

Código:
"y me doy cuenta que la variable $timestamp y $timestamp_limite las tomas como -1"
Lo que me doy cuenta es que esas dos variables me devuelve -1 al mostrarlas. Y en el localhost de mi pc devuelve el numero de la funcion correcta, es decir, 1245117600.


La version del servidor es PHP Version 4.4.9.
  #8 (permalink)  
Antiguo 15/06/2009, 08:16
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Exclamación Respuesta: Combo de tiempo cada 15 min para Calendario

Hola,

he visto que has modificado el código que te pase

el tuyo...

Código PHP:
            $timestamp strtotime($fecha.'08:00:00')-900;
            
$timestamp_limite strtotime($fecha.'23:00:00'); 
el mio...(aprecia los espacios en blanco delante de las horas.

Código PHP:
            $timestamp strtotime($fecha.' 00:00:00')-900;
            
$timestamp_limite strtotime($fecha.' 23:59:59'); 
Por otro lado la siguiente linea

Código PHP:
$hora date("H:i"$timestamp); 
Va delante del echo de la celda

Código PHP:
echo "<option value=".$hora.">".$hora."</option>"
Ya que para poder pintar la celda has de obtener primero la variable $hora.

Saludos!!!!
  #9 (permalink)  
Antiguo 15/06/2009, 08:45
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Combo de tiempo cada 15 min para Calendario

Ahora si funciona Synkronice !!! Dejo el codigo final:

Código PHP:
<select name="hora" size="1" class="negro4">
              <option value="">Elegir Hora</option>
              <?
            $fecha 
date("Y-m-d");
            
$timestamp strtotime($fecha.' 08:00:00')-900;
            
$timestamp_limite strtotime($fecha.' 23:00:00');
            do
            {
                  
$timestamp += 900;
                  
$hora date("H:i"$timestamp);
                echo 
"<option value=".$hora.">".$hora."</option>";
            } while (
$timestamp $timestamp_limite);
                   
            
?>
            </select>
Muchas gracias
  #10 (permalink)  
Antiguo 15/06/2009, 08:46
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Combo de tiempo cada 15 min para Calendario

Ok, ahora está perfecto :)

PD: Me debes unas cervecitas jejeje

Saludos!
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 03:54.