2012-04-25 28 views
5

Acabo de comprar una nueva computadora, y he estado configurando PHP/MySQL/bases de datos, etc ... Creo que estoy a punto de llegar , excepto que ha lanzado esta bola curva. Mi script de inicio de sesión funcionaba bien, pero ahora está escupiendo la siguiente advertencia (que arruina el JSON).PHP - date() vs. date.timezone/date_default_timezone_set()

Advertencia: date() [function.date]: No es seguro confiar en la configuración de zona horaria del sistema. Usted es requiere para utilizar la configuración de fecha.tiempo o la función date_default_timezone_set(). En el caso de que haya utilizado alguno de esos métodos y todavía reciba esta advertencia, lo más probable es que haya escrito incorrectamente el identificador de la zona horaria. Seleccionamos 'Antártida/Macquarie' para 'EST/10,0/no DST' en lugar de .../php/login.php en la línea

Mi código obviamente utiliza date() y es trabajando en la versión en vivo y en la máquina vieja. Tengo dos advertencias para las siguientes dos líneas de código:

$date = date("ymd"); 

$this_year = date("y"); 

Mi investigación (véase here) sugiere que el comportamiento de estas funciones depende de php.ini.

¿Debo cambiar php.ini en la nueva máquina, o estoy usando algún tipo de método en desuso, y debería abandonar date() en total?

Gracias.

+1

Gracias, todos. Usar date_default_timezone_set ('...') funcionaba como un amuleto. – Nick

Respuesta

11

No necesita cambiar el archivo php.ini si usa date_default_timezone_set(). Sólo tienes que configurar la zona horaria que va a trabajar en

Algo como esto debe ir en un archivo de configuración o en la página donde se trabaja con fechas (si es sólo una página):.

date_default_timezone_set('America/Los_Angeles'); 
4

No es una excepción, es una advertencia que probablemente esté apareciendo ahora porque la configuración de informes de errores en la nueva máquina es diferente a la anterior.

Sugeriría seguir la sugerencia en la advertencia y usar date_default_timezone_set() para establecer una zona horaria en los scripts donde lo necesite.

+1

Actualicé la publicación, cambiando 'excepción' a 'advertencia' :) – Nick

4

En primer lugar, usted está aunque pueda saber, esto resuelve el problema.

date_default_timezone_set('Your/Timezone'); 

Si desea configurar en php.ini, modificar a continuación

[Date] 
; ... 
; ... 
date.timezone = Your/Timezone 
4

Usted no tiene que cambiar el php.ini.

Sin embargo, si tiene una zona horaria que usará para la mayoría de sus archivos php, agregar la siguiente línea a su php.ini debería ser suficiente.

date.timezone = "Your/Timezone" 

En mi caso agregué la siguiente línea a php.ini. Personalmente, prefiero mantener todos nuestros servidores en la zona horaria UTC.

date.timezone = "UTC"