FATRIAN

Tag: fechas

Problemas con fechas en MySQL y PHP

by on Nov.27, 2013, under php, webdev

Uno de los dolores de cabeza en Mysql con apliciones web son las “fechas“, cuando el servidor esta en nuestro pais o mejor dicho en nuestra zona horaria no hay problema y son tan felices con un simple NOW(), pero si está fuera de nuestro horario tambien se puede sincronizar con un simple query: SELECT DATE_SUB (NOW (), INTERVAL 1 HOUR); para sumar una hora en este caso, pero a veces este no es el único problema, los horarios de verano no siempre se aplican en la misma fecha en todos los paises y esta solución solo es ilusión temporal.

Solución real
Es importante mencionar que es una solución muy particular pero funciona si tu plicación esta en php, supongo que en otras tecnologías es los mismo, php toma la configuración de apache y MySQL usa una configuación propia tambien, pero se puede redefinir manualmente sin necesidad de mover estos paramentros del servidor ya sea por que usas un hosting compartido o careces de permisos, en la parte superior de tu script php defines tu zona horaria date_default_timezone_set('America/Mexico_City'); es este caso estoy definiendo mi zona horaria y por lo tanto respetará hasta el horario de verano, en esta liga estan las zonas soportadas, en cualquier consulta es necesario sustituir la función NOW() por la funcion de php date("Y-m-d H:i:s") un ejemplo de esto sería :


<?php
date_default_timezone_set('America/Mexico_City');
....código de conexion etc....
....
$sql="INSERT INTO tabla (fecha) VALUES('".date('Y-m-d H:i:s')."')";
$res=mysql_query($sql);
....
....más código...
?>

Y listo el NOW() ya no será util ya que php hará esto por mi, funciona tanto para valores DATE y DATETIME.

1 Comment :, , , , , , more...