2009-06-09 18 views
8

Cuando uso current_timestamp con MySQL, consigo la hora correcta, pero cuando se utilizatiempo MySQL y tiempo php no el mismo

$mysqldate = date('Y-m-d H:i:s');

I obtener la fecha con con una hora de retraso (por ejemplo, 4 : 42 PM son 5:42 PM). Entiendo que ambas funciones usan la hora local del servidor. ¿Puede alguien explicar la diferencia?

Gracias.

+1

¿Estás seguro de que su MySQL y PHP están el mismo servidor, ¿verdad? Algunos hosts ponen el MySQL en un servidor diferente. – ceejayoz

Respuesta

9

El tiempo global del sistema se establecerá a través del archivo/etc/localtime, que será o bien un enlace simbólico o una copia de un archivo de zona de/usr/share/zoneinfo/en la mayoría de los sistemas. Las aplicaciones usarán esto como su predeterminado.

PHP puede anular esto en un par de diferentes maneras:

  1. date.timezone en php.ini
  2. estableciendo la variable de entorno TZ, por ejemplo putenv("TZ=US/Central");
  3. date_default_timezone_set función (en PHP> = 5.1.0)

MySQL puede anular esta ejecutando la siguiente consulta inmediatamente después de la conexión:

SET time_zone = 'US/Central' 
1

Tal vez su servidor PHP piensa que está en una zona horaria diferente o que utiliza configuración regional diferente y horario de verano reglas de tiempo.

+0

¿cómo obtengo PHP para darme el tiempo de servidor predeterminado que aparece en la computadora del servidor? Fecha de PHP.timezone no está configurado – daniel

2

Hay opciones de localización php, que lo toma de php.ini, no de la hora del sistema

Cuestiones relacionadas