Consulta sobre hora en actualización BD.

Tengo en php el siguiente código que me dice en que fecha y hora se actualizo la base de datos. Solamente que en hora me devuelve la hora que se encuentra en otro huso horario. Quisiera saber si hay alguna forma de a esa hora sumarle dos horas más para lograr quedar ne la hora de mi zona.

O configurar el horario para que me de la actualización en la hora de Montevideo/Uruguay.

Gracias a todos los que me puedan ayudar desde ya.

$result = mysql_query("SHOW TABLE STATUS FROM house_practica LIKE 'clases'");
while($array = mysql_fetch_array($result)) {
$fechaBD = substr($array[Update_time],0,40);
list($a, $b) = explode("-", $fechaBD);
Echo "<div align=right><b>Fecha de actualización de la base de datos:</b> ". Strftime("%A %d de %B del %Y a las %Hhrs. Con %M minutos", strtotime($fechaBD))

2 respuestas

Respuesta
1

No debes sumar o restar horas porque el horario internacional cambia de acuerdo si estamos en verano o en invierno.

Analiza lo siguiente:

@$fecha = date("Y-m-d H:i:s",time());
$date = new DateTime($fecha, new DateTimeZone('America/Lima'));
date_default_timezone_set('America/Lima');
$zonahoraria = date_default_timezone_get();
@$fecha=date("Y-m-d H:i:s",time());

debes trabajar con la zona horaria de tu ubicación. PHP te actualiza la fecha y hora de acuerdo a tu zona horaria.

Así te evitas estar cambiando, sumando y restando horas...

Consulta un poco mas sobre el tema y llegarás a dominarlo

SiREZ

Pero ahí no me dice cuando fue la última vez en que se actualizó la base de datos.

O sea, si yo voy a la base de datos y coloco la sentencia me da que se actualizó a una fecha y hora determinada, solamente que mi país tiene dos horas a más de diferencia. Debe haber alguna manera con PHP de configurar la última actualización de la tabla diferente a la que te devuelve la consulta SQL en la propia base de datos.

O sea en la base de datos me devuelve como última actualización el lunes a las 12:30 cuando en realidad fue modificada el lunes a las 14:30

Lo que sucede es que una cosa es la fecha y hora de tu computador y de tu ciudad y otra la fecha del lugar donde está ubicado el hosting.

PHP trabaja al lado del servidor y te da la fecha y hora del servidor

Pero haber, si logré que me dijera cual fue la ultima fecha de actualización de mi pagina en el horario de mi país, creo que se podría colocar la fecha de actualización de la base de datos desde mi país, que es el horario correcto en que la base de datos se actualizo.

CONVERT_TZ ()

En MySQL el CONVERT_TZ () devuelve un valor resultante después de la conversión de un valor de fecha y hora de una zona horaria especificada como segundo argumento a la zona horaria especificada como el tercer argumento. Esta función devuelve NULL cuando los argumentos no son válidos.

Sintaxis: CONVERT_TZ (dt, from_tz, to_tz)

Ejemplo:

SELECT CONVERT_TZ ('2008-05-15 12:00:00', '+ 00:00', '+ 10:00');

salida:

CONVERT_TZ ('2008-05-15 12:00:00', '+ 00:00', '+ 10:00)
-------------------------------------------------- -
2008-05-15 22:00:00

Pero no se como colocarla dentro de la siguiente SQL:

SHOW TABLE STATUS FROM house_practica LIKE 'clases'

Con la función Update_time de SQL.

Creo que es así:

mysql_query (SELECT  DATE_FORMAT(CONVERT_TZ(s_in, '+00:00','+2:00'), '%M %e, %Y %r %W') AS time_in FROM TABLE") 

nota que le coloqué +2:00 esa es la diferencia horaria entre tu PC y el servidor

SiREZ

Pero yo no tengo un campo fecha, voy al campo de propiedades de la tabla con el 

SHOW TABLE STATUS FROM house_practica LIKE 'clases'

En una ocasión estaba en situación similar, más enredado que un costalado de anzuelos, entonces lo que hice fue lo siguiente:

A todas las tablas le adicione un campo:

fecha_edicion varcha(20)

 cada vez que se actualizaba la tabla grababa  la fecha y hora 

@$fecha = date("Y-m-d H:i:s",time());
$date = new DateTime($fecha, new DateTimeZone('America/Lima'));
date_default_timezone_set('America/Lima');
$zonahoraria = date_default_timezone_get();
@$fecha=date("Y-m-d H:i:s",time());

cuando requería conocer la ultima actualización hacía la consulta ordenada en fecha_edicion ORDER BY DESC y listo, allí tenía la fecha de actualización de la tabla específica.

Así me quité el dolor de cabeza de tratar de obtener esa fecha mediante PHP puro.

Fue algo práctico en su debido momento.

SiREZ

Respuesta
1

Puedes general una tabla bitácora donde guardas la hora, usuario y que movimiento genera dentro de un insert en el mismo form donde realizas la actualización, yo lo hago con buenos resultados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas