Foros del Web » Programando para Internet » PHP »

Lío a la hora de sumar horas a una fecha

Estas en el tema de Lío a la hora de sumar horas a una fecha en el foro de PHP en Foros del Web. Hola a todos, me presento soy Alberto y estoy terminando mis estudios de FP2 de informática y para lo cual tengo q presentar un proyecto ...
  #1 (permalink)  
Antiguo 18/08/2008, 08:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Lío a la hora de sumar horas a una fecha

Hola a todos, me presento soy Alberto y estoy terminando mis estudios de FP2 de informática y para lo cual tengo q presentar un proyecto el 1 de septiembre de un modulo en php para xoops. Es un avisador para los informaticos de una empresa en el cual los usuarios introducen un incidente y este les da el tiempo que van a tardar aproximadamente el tecnico en ir a su equipo.
Cuando introduce una incidencia en la base de datos tengo un campo que automaticamente introduce la fecha y la hora en el que se hace el insertado en la tabla. Una vez hecho esto en el index al usuario le aparece la hora en la aviso de la incidencia, pero al estar en un servidor extranjero mi web tiene 6 horas menos. Consigo mostrar solo la hora que está en la base de datos, pero quiero sumarle de momento 6 horas más para que lo muestre en hora española. Esa es mi primera duda.
Luego tengo que insertarle también x minutos que va a tardar en ir el técnico sumandole según la gravedad del incidente anterior, que puede ser 30, 60 ó 90 minutos, ¿Cómo podría insertarle ese tiempo?
Si no me he explicado bien me lo comentais y os daré más detalles. Un saludo a la peñita.
  #2 (permalink)  
Antiguo 18/08/2008, 09:19
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Lío a la hora de sumar horas a una fecha

Te recomiendo que investigues un poco la funcion mktime()... con estos valores de mktime() puedes sumar y restar algo como:
Código PHP:
$tiempo mktime(0,60,0,0,0,0) + mktime(0,30,0,0,0,0);
echo 
date("H:m:s"$tiempo); 
Revisa la funcion date() y la funcion mktime() en el manual oficial.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 19/08/2008, 03:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Lío a la hora de sumar horas a una fecha

He intentado lo que me as dicho y no consigo averiguar nada. Pongo el código de la página y os explico un poco.
<?php
include "header.php";
include XOOPS_ROOT_PATH."/header.php";
if($xoopsUser){
$user=$xoopsUser->uid();

$problema=$_POST['problema'];
$comentario=$_POST['comentario'];

//Buscar el puesto del usuario
$usuario="select * from xoops_users where uid = '$user'";
$qusuario=mysql_query($usuario);
$rusuario=mysql_fetch_array($qusuario);
$puesto=$rusuario['url'];
date_default_timezone_set("Europe/Madrid");

$hora=date("Y-m-d H:i:s");



//Ordenes en caso de que se introduzca un comentario en vez de alguno de la lista
if ($comentario != null){
$timee=90;
$aa="select * from xoops_aviso where listo = 0 order by id desc";
$bb=mysql_query($aa);
$cc=mysql_fetch_array($bb);
$t=$cc['tiempo'];
$time=$t+$timee;
$insertar2="insert into xoops_aviso (usuario, problema, puesto, listo, tiempo, hora_insertar) values ('$user', '$comentario', '$puesto', 0, '$time', '$hora')";
mysql_query($insertar2);
}
else{
//Comprobación del tiempo que hay que insertar
$consulta="select * from xoops_aviso where listo = 0";
$query=mysql_query($consulta);
while($row=mysql_fetch_array($query)){
$cont++;
}
if($cont==0){
$time=0;
}
else{
$a="select gravedad from xoops_problema where problema = '$problema'";
$b=mysql_query($a);
$c=mysql_fetch_array($b);

if($c['gravedad']=="baja"){
$time2=30;
}
if($c['gravedad']=="media"){
$time2=60;
}
if($c['gravedad']=="alta"){
$time2=90;
}
$tiempo1="select * from xoops_aviso order by id desc";
$tiempo2=mysql_query($tiempo1);
$tiempo3=mysql_fetch_array($tiempo2);
$cuanto=$tiempo3['tiempo'];
$time=$cuanto+$time2;
}

$insertar="insert into xoops_aviso (usuario, problema, puesto, listo, tiempo, hora_insertar) values ('$user', '$problema', '$puesto', 0, '$time', '$hora',)";
mysql_query($insertar);

}
echo "el tiempo es: ".$time;






}
else{
echo"Usted no es un usuario registrado, por favor registrese para poder usar esta opción";
echo "<head><meta http-equiv='refresh' content='8; url=index.php'></head>";
}
include XOOPS_ROOT_PATH."/footer.php";
?>

Necesito a $hora sumarle $time. Os agradecería muchisimo vuestra ayuda porque necesito entregarlo el dia 1 y voy un poco retrasado y esto me esta parando tela el proyecto.
Un saludo y muchas gracias de anticipo.
  #4 (permalink)  
Antiguo 17/09/2009, 15:59
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Lío a la hora de sumar horas a una fecha

No se si ya se habra resuelto este problema. Pero aca les dejo la solución para los que aun no sepan como sumar o restarle horas a lo que nos arroja el servidor.

Código PHP:
// Obtenemos la hora del servidor
$hora date("h:i A");
// Generamos una variable numerica con el valor de los segundos que queremos sumar o restar a nuestra hora
$gmtLocal 16200;
// En mi caso la hora local es GMT -4:30, que equivalen a 16200 segundos
// Luego restamos o sumamos segun sea el caso
$tiempo strtotime($hora)-$gmtLocal;
// Luego le damos formato a nuestra hora...
echo date("h:i A",$tiempo); 

Espero les sirva.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:22.