Foros del Web » Programando para Internet » PHP »

crear una condicion

Estas en el tema de crear una condicion en el foro de PHP en Foros del Web. hola tengo el siguiente problema hace poco hice una funcion para ver el tiempo utilizado entre uno y otro. ejemplo: comienzo: 10:15 fin: 10:30 el ...
  #1 (permalink)  
Antiguo 15/01/2010, 08:40
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta crear una condicion

hola tengo el siguiente problema hace poco hice una funcion para ver el tiempo utilizado entre uno y otro.

ejemplo: comienzo: 10:15 fin: 10:30 el tiempo utilizado= 15 minutos.

esta es la funcion:

Código PHP:
/*arreglo para cambio de hora...*/
function segundos_tiempo1($segundos1){ 
$minutos=$segundos1/60
$horas=floor($minutos/60); 
$minutos2=$minutos%60
$segundos_2=$segundos1%60%60%60
if(
$minutos2<10)$minutos2='0'.$minutos2
if(
$segundos_2<10)$segundos_2='0'.$segundos_2

if(
$segundos1<60){ /* segundos */ 
$resultadoround($segundos1).' '
}elseif(
$segundos1>60 && $segundos1<3600){/* minutos */ 
$resultado$minutos2.':'.$segundos_2.' '
}else{
/* horas */ 
$resultado$horas.':'.$minutos2.':'.$segundos_2.' '

return 
$resultado

$segundos1$dif1
esta es la consulta
Código PHP:
$fechadehoy= date("d/m/Y"); 
$sql="select horallegada,recibida, from control where fecha='$fechadehoy'";
$sql_result=mysql_query($sql,$link);

}
while($row=mysql_fetch_array($sql_result)){
$horallegada=$row['horallegada'];
$recibida= $row['recibida'];
$horallegada2a= strtotime ($horallegada); /*aqui hace un redondeo sobre la tabla*/
$recibida2a= strtotime ($recibida);/*aqui hace un redondeo sobre la tabla*/
$dif1= abs ($horallegada2a-$recibida2a);/* aqui hacemos la resta, la cual da el total de segundo usados... posteriormente pasara a una funtion que lo hara hora*/

<?php echo segundos_tiempo1($dif1); ?>
mi problema es que cuando solo tengo un rango es decir

comienzo = 10:15 y fin=(no tiene) tiempo utilizado= 8543212 puros numero comp puedo hacer en estos casos para que no aparezca nada.

espero sus respuestas
  #2 (permalink)  
Antiguo 15/01/2010, 08:44
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: crear una condicion

php trabaja con EPOCH de unix, debes consultar el manual de php y las funciones mktime y date para mayor información, el tema ya de por si es redundante

$segundos = date('s',$rango);
  #3 (permalink)  
Antiguo 15/01/2010, 08:45
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: crear una condicion

Pues preguntas no?

Código PHP:
Ver original
  1. if ($horaComienzo && $horaFin) {
  2.      //si las dos variables tienen valor, realice función
  3. } else {
  4.      echo 'Se requieren las dos horas';
  5. }

Creo que es eso?

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 15/01/2010, 08:58
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: crear una condicion

Carxl es algo asi como tu dices lo que quiero: pero tengo un conflicto por lo siguiente:

Código PHP:
$horallegada=$row['horallegada']; 
$recibida= $row['recibida']; 
$horallegada2a= strtotime ($horallegada); /*aqui hace un redondeo sobre la tabla*/ 
$recibida2a= strtotime ($recibida);/*aqui hace un redondeo sobre la tabla*/ 
$dif1= abs ($horallegada2a-$recibida2a);/* aqui hacemos la resta, la cual da el total de segundo usados... posteriormente pasara a una funtion que lo hara hora*/ 

<?php echo segundos_tiempo1($dif1); ?>
el if me lo reconoce pero me sigue mostrando los numeritos esos. asi sale

350986:22:44 falta un campo

sera que tengo que modificar la funcion???
  #5 (permalink)  
Antiguo 15/01/2010, 09:07
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: crear una condicion

Osea, $horallegada y $recibida, es a los que debes hacerle la comparación no?

Dedes estar seguro que esos dos tiene los el formato que deseas para poder usarlos, de lo contrario no obtendrás lo que deseas...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 15/01/2010, 09:13
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: crear una condicion

mira lo deje asi:

Código PHP:
<?php echo segundos_tiempo1($dif1); if ($recibida2a && $horallegada2a) {                  } 
                  else {     echo 
'0';} ?>
y el resultado lo muestra asi:350986:22:44 0
  #7 (permalink)  
Antiguo 15/01/2010, 09:22
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: crear una condicion

Osea, lo que propongo es que las variables que obtiones de la DB sean las que tengan la condición no? Según tu ejemplo, estas dos:

Código PHP:
Ver original
  1. $horallegada=$row['horallegada'];
  2. $recibida= $row['recibida'];
  3.  
  4. if ( $horallegada && $recibida ) {
  5.      //realizar lo demás
  6. } else {
  7.     //no se puede comparar
  8. }
Sí desde un principio esas dos existen, lo demás va a funcionar bien...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #8 (permalink)  
Antiguo 15/01/2010, 09:31
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: crear una condicion

tienes toda la razon pero esas dos variables la unifico en
$dif1= abs ($horallegada2a-$recibida2a);
y ese $dif1 es el que estoy utilizando en la funcion el que determina lo demas.
  #9 (permalink)  
Antiguo 15/01/2010, 12:07
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: crear una condicion

ayuda por favor.... necesito alguien que me ayude :(

Etiquetas: Ninguno
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 15:07.