Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Funcion- tiempo transcurrido perfil

hola, tengo problema con la funcion //Tiempo trascurrido funcion
function tiempo_transcurrido($fecha) {
if(empty($fecha)) {
return "No hay fecha"; .........

Lo que pasa que alver el tiempo de la ultima sesion la funcion tiempo y campo ultima en la bd, me aparece al volver al perfil , con 4m horas más de las que realmente deberia y em general en todas las paginas con esta funcion me aparece unn d desface de 4 horas,

Supongo que es por difereia horaria en la configuracion de algo, tal vez del navegador, porque la hora del compu es la misma que aparece registrada en la columna ultima' con times current

Será el navegador o algun codigo que deba cambiar en la estructura html?, cual sería si es asi, espero aportar con la solucion a buscarla al menos,
slds
0
Puntos
368
Visitas
4
Resp
Por claudiop hace 17 meses
Principiante
Respuesta #1
p.d.: los codigos estan ultra revisados y estan bien, el php al menos y las consultas y update sql
0
Puntos
Por claudiop hace 17 meses
Principiante
Respuesta #2
hola buenas, si la fecha que tienes en la base de datos es la correcta la función debería mostrar la hora sin adelanto.. no obstante comprueba otra vez que la fecha este guardada de manera correcta ademas comprueba que cada vez que el usuario haga login esa fecha/hora se actualice

por último publica en este hilo la función tiempo transcurrido completa y le echamos un vistazo

salu2
0
Puntos
Por alber hace 17 meses
Administrador
Respuesta #3
ok, aqui va la funcion:

//Tiempo trascurrido funcion
function tiempo_transcurrido($fecha) {
if(empty($fecha)) {
return "No hay fecha";
}

$intervalos = array("segundo", "minuto", "hora", utf8_decode("día"), "semana", "mes", utf8_decode("año"));
$duraciones = array("60","60","24","7","4.35","12");

$ahora = time();
$Fecha_Unix = strtotime($fecha);

if(empty($Fecha_Unix)) {
return "Fecha incorracta";
}
if($ahora > $Fecha_Unix) {
$diferencia =$ahora - $Fecha_Unix;
$tiempo = "Hace";
} else {
$diferencia = $Fecha_Unix -$ahora;
$tiempo = "Dentro de";
}
for($j = 0; $diferencia >= $duraciones[$j] && $j < count($duraciones)-1; $j++) {
$diferencia /= $duraciones[$j];
}

$diferencia = round($diferencia);

if($diferencia != 1) {
$intervalos[5].="e"; //MESES
$intervalos[$j].= "s";
}

return "$tiempo $diferencia $intervalos[$j]";
}
0
Puntos
Por claudiop hace 16 meses
Principiante
Respuesta #4
tal vez al final cuando suba la bd al servidor con la pagina web, ahi deberia funcionar
0
Puntos
Por claudiop hace 16 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate