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
1235
Visitas
4
Resp
Por claudiop hace 8 años
Novice
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 8 años
Novice
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 8 años
Admin
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 8 años
Novice
Respuesta #4
tal vez al final cuando suba la bd al servidor con la pagina web, ahi deberia funcionar
0
Puntos
Por claudiop hace 8 años
Novice
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar