2010-02-06 11 views
64

Aquí una extraña. acabo de actualizar a PHP 5.3.0 y ya que la actualización que estoy recibiendo la siguiente advertencia:Configuración de PHP: No es seguro depender de la configuración de zona horaria del sistema

Advertencia: getdate() [function.getdate]: No es seguro confiar en la zona horaria del sistema configuraciones. Usted es requerido para usar la configuración date.timezone o la función date_default_timezone_set() . En caso de que haya utilizado cualquiera de los métodos y todavía esté recibiendo esta advertencia, lo más probable es que haya escrito incorrectamente el identificador de zona horaria. Nosotros seleccionamos 'América/Chicago' para 'CST/-6.0/no DST'

Después de mirar en varios foros, todo el mundo dice que para resolver el problema, todo lo que tiene que hacer es editar la zona de la fecha en php.ini y reiniciar Apache.

No funcionó para mí.

me trataron

date.timezone="America/New_York" 

date.timezone=America/New_York 

date.timezone="US/Central" 

reiniciado Apache después de hacer el cambio.

Dado que todavía tengo la versión anterior de instalación de PHP, que incluso se aseguró de que estoy editando el php.ini que la versión actual de PHP utiliza en el momento de cargar

/usr/local/php5/lib/php.ini

Aún recibiendo la advertencia.

¿Alguna sugerencia?

Gracias por tomarse el tiempo.

+7

¿Está editando el archivo ini correcto? – rrrfusco

+3

Descubrí que se trata de un problema que establecía la zona horaria en apache php.ini pero no en cli php.ini. – Kzqai

+0

La zona horaria debe ser real, UTC o GMT no funcionaría. –

Respuesta

2

comprobar si hay errores de sintaxis en el archivo php.ini, especialmente antes los parametros de fecha, que impiden que el archivo sea analizada correctamente.

7

Ocurrió que tuve que configurar Apache & PHP en dos computadoras portátiles recientemente. Después de mucho llanto y crujir de dientes, noté en la salida de phpinfo que (por alguna razón: no prestar atención durante la instalación de PHP, mal instalador) Apache esperaba que php.ini estuviera en algún lugar donde no estaba.

dos opciones:

  1. ponen en Apache piensa que debería ser o
  2. punto de Apache en la verdadera ubicación de su php.ini

... y reiniciar Apache. La configuración de la zona horaria debe ser reconocida en ese punto.

37

Tchalvak, que comentó la pregunta original, me dio un golpe en la cabeza.He estado editando (yo uso Debian):

/etc/php5/apache2/php.ini 

... que tenía la zona horaria correcta para mí y era el único archivo .ini ser cargado con date.timezone dentro de ella, pero yo estaba recibiendo lo anterior error cuando ejecuté un script a través de Bash. No tenía idea de que debería haber estado editando:

/etc/php5/cli/php.ini 

también. (Bueno, para mí fue 'también', para ti podría ser diferente, por supuesto, pero voy a mantener mis versiones de Apache y CLI de php.ini sincronizadas ahora).

+1

+1 OMG, eres un salvador !!!!!!!!!!! Yo simbólicamente vinculé el archivo CLI al archivo apache ini. ¡No más de esta confusión! –

+0

¡Sin problemas! El enlace simbólico es probablemente el mejor plan para ser honesto. Feliz de haber ayudado. :) – Vaughany

-10

También puede probar esta

date.timezone = <?php date('Y'); ?> 
2

Modifique su index.php de la siguiente manera:

require_once($yii); 
$app = Yii::createWebApplication($config); 
Yii::app()->setTimeZone('UTC'); 
$app->run(); 
+0

Aunque tu respuesta podría resolver el problema, hacer un pequeño comentario sobre cómo funciona no hará daño y hará que el OP entienda mejor qué estás haciendo. – nKn

+0

En el código autogenerado yii creó la aplicación con la información proporcionada en el archivo de configuración. En este caso, a nivel de aplicación, estamos configurando la zona horaria. Entonces, necesitamos crear $ app en lugar de escribir como –

+0

En el código autogenerado, yii creó la aplicación con la información proporcionada en el archivo de configuración. En este caso, a nivel de aplicación, estamos configurando la zona horaria. Entonces, necesitamos crear $ app en lugar de escribir como Yii :: createWebApplication ($ config) -> run() ya que esto no nos permite hacer ninguna modificación a la aplicación antes de ejecutarla. El cambio que queremos hacer permite que la aplicación conozca nuestra zona horaria. En el futuro, si desea cambiar algún otro parámetro, puede hacerlo fácilmente modificando la aplicación antes de ejecutar. Esperando que aclare lo que estoy tratando de hacer :) –

2

Obviamente estoy un poco fuera de temporada sobre esta cuestión, pero en beneficio de la siguiente sufridor: Acabo de tener este problema y en mi caso (a diferencia de OP que intentó lo mismo sin éxito) la solución fue revisar php.ini, cambiando

date.timezone = America/New York 

a

date.timezone = America/New_York 

que agrega el carácter de subrayado.

1

he modificado /etc/php.ini

[Fecha] ; Define la zona horaria predeterminada utilizada por las funciones de fecha ; http://php.net/date.timezone date.timezone = ('Asia/kolkata')

y ahora funciona bien.

Vipin Pal

5

prueba esto, funciona para mí.

date_default_timezone_set('America/New_York'); 

En el archivo real que se quejaba.

6

abrir su archivo .htaccess, agregue esta línea al archivo, guardar, e intenta nuevamente:

php_value date.timezone "America/Sao_Paulo" 

Esto funciona para mí.

1

Es posible que se haya olvidado de eliminar el punto y coma para descomentar esa línea. Para la línea date.timezone = "US/Central", asegúrese de que no haya punto y coma delante de esa línea.

0

Encontré, extrañamente, que podía corregir los errores colocando la declaración de la zona horaria en el TOP de mi archivo php.ini.

Ya estaba en mi php.ini. Dos veces, en realidad. Y estaba tirando de mi cabello porque todos decían que debía haber otra ini cargada ... No lo había.

Espero que esto pueda salvar a otra persona del tiempo/pérdida de cabello.

Cuestiones relacionadas