Foros del Web » Programando para Internet » PHP »

Validar tiempo - de hora a dia.

Estas en el tema de Validar tiempo - de hora a dia. en el foro de PHP en Foros del Web. Hola... Tengo una tabla donde ingreso en un campo tiempo tipo time, un valor de horas.... Código PHP: < select name = "tiempo"  class= "FormsCampos" > ...
  #1 (permalink)  
Antiguo 04/05/2005, 09:35
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Mensaje Validar tiempo - de hora a dia.

Hola...

Tengo una tabla donde ingreso en un campo tiempo tipo time, un valor de horas....

Código PHP:
<select name="tiempo" class="FormsCampos">
  <
option value="00:00:00">0 minutos</option>
  <
option value="00:05:00">5 minutos</option>
  <
option value="00:10:00">10 minutos</option>
  <
option value="00:15:00">15 minutos</option>
  <
option value="00:30:00">30 minutos</option>
  <
option value="01:00:00">1 hora</option>
  <
option value="02:00:00">2 horas</option>
  <
option value="03:00:00">3 horas</option>
  <
option value="04:00:00">4 horas</option>
  <
option value="05:00:00">5 horas</option>
  <
option value="06:00:00">6 horas</option>
  <
option value="07:00:00">7 horas</option>
  <
option value="08:00:00">8 horas</option>
  <
option value="09:00:00">9 horas</option>
  <
option value="10:00:00">10 horas</option>
  <
option value="11:00:00">11 horas</option>
  <
option value="24:00:00">1 dia</option>
  <
option value="48:00:00">2 dias</option>
  <
option value="72:00:00">3 dias</option>
  <
option value="96:00:00">4 dias</option>
  <
option value="168:00:00">1 semana</option>
  <
option value="336:00:00">2 semanas</option
mmm no se que tan correcto sera hacerlo asi....

pero por ejemplo si elijo 2 semanas, en el campo tiempo me queda guardado 336:00:00 horas!.. asi que bueno, luego tomo por ejemplo esas 336:00:00 horas y las convierto en dias...

Código PHP:
if ($ROW["DSTIEMPO"] ="336:00:00")
    {
     echo 
$dia $ROW['DSTIEMPO'] / 24;
     } 
Realmente creo que lo estoy haciendo como no és!!.. pero no sé como más!!


ideas???
  #2 (permalink)  
Antiguo 04/05/2005, 11:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Creo que no deberías tratar ese "tiempo" como una "hora" .. sino como un n° de la únidad de tiempo que uses .. por ejemplo minuto o segundo según corresponda en tu caso el nivel de "precisión".

De esa manera .. almacena ese dato como un entero común (INT) y corriente (recuerda que es "tiempo" no fechas lo que tu gestionas) .. Y a partir de ahí puedes hacer los cálculos tipicos para obtener cuantas "horas" son esos minutos que ahí tienes .. o días .. etc .. (divide y venceras decía el refrán)

Por supuesto .. con esa "medida" normalizada en alguna unidad (lease minutos en tu caso por ejemplo) ya puedes operar con fechas tipo "sumar esos minutos a tal fecha ..." y cosas así.

Otro detalle .. si el objetivo final es tomar por ejemplo una fecha de un campo de tu BD y sumar esos minutos .. para obtener la fecha que resulte .. todo eso lo puedes hacer de una usando las funciones de tratamiento de fechas del SQL que tu RDBMS uses (Mysql? .. el que corresponda).

Un saludo,

PD: una buena pregunta para tu "examen" .. por lo menos ves ahí como "enfocar un problema"
  #3 (permalink)  
Antiguo 04/05/2005, 12:50
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Si, buen punto para el exámen.. ;) gracias...

Bueno, cambiaré esas horas a minutos.. entonces 2 semanas serian...20160 ?? y ya, comenzaría a jugar con esos minutos.. es asi cierto?.. mm si entendí??
  #4 (permalink)  
Antiguo 04/05/2005, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si .. piensa que tienes "unidades" de algo y que vas a "operar" con ellas .. sean minutos, horas, segundos .. o animales, productos, etc...

Lo importate es que tu campo de tu tabla que registra ese dato sea uno numérico cualquiera no un "TIMESTAMP" ni un DATETIME o un TIME .. insisto que el dato que gestionas no es una fecha sino N unidades de algo ... Reduce la unidad a la mínima expresión que trabajes (minutos? .. pues eso) y listo.

Ahora .. como tu bien sabes .. no quita que a una "fecha/hora" le puedas "sumar/restar" N minutos por ejemplo (si es que ese es el objetivo .. Realmente cuando uno habla de "un minuto, un día" se refiere -desde- alguna fecha ... no?)

Un saludo,
  #5 (permalink)  
Antiguo 04/05/2005, 13:48
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
vaya, me estaba enredando la vida...

Gracias.. muacksss!!!
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 10:30.