2012-08-24 9 views
8

tengo esta entrada en mi archivo php.ini:php date.timezone no funciona correctamente para la secuencia de línea de comando sólo

date.timezone = 'Europe/London'; 

pero cada vez que uso el DateTime() en un script de línea de comandos sigo teniendo el siguiente error:

Exception: DateTime::__construct(): It is not safe to rely on the system's timezone settings. 

You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. 

We selected 'Europe/London' for 'BST/1.0/DST' instead 

por lo tanto, tienen que hacer lo siguiente en cualquier script para conseguir que esto funcione:

date_default_timezone_set('Europe/London'); 

W ¿Qué otra cosa puede estar causando este error?

ACTUALIZACIÓN

que utilizó la siguiente, tanto en la línea de comandos y navegador Web:

<?php 

var_dump(ini_get('date.timezone')); 
exit; 

En la línea de comandos que consigo:

string(0) "" 

en el navegador web me sale:

string(13) "Europe/London" 
+2

¿Reinició su servidor después de cambiar el archivo php.ini? –

+0

Sí, se ha reiniciado, pero el valor se ha establecido durante un tiempo de todos modos y el servidor se ha reiniciado varias veces en el medio. Es solo ahora cuando estoy escribiendo un script de línea de comandos que la Excepción está ocurriendo – user1572427

+0

¿Podría probar echo ini_get ('date.timezone'); y ver lo que realmente está configurado? –

Respuesta

17

CLI y servidor web (y cgi y fpm) utilizan diferentes php.ini -files. Como dices que ves el valor correcto en tu navegador, creo que editaste el correcto. En cli escriba

php --ini 

Para saber cuál es el que debe editar. Es el que está en la segunda línea, por ejemplo

Loaded Configuration File:   /etc/php5/cli/php.ini 
1

Algunos servidores (como media temple) hacer las configuraciones para el domains.So particular, el servidor va a tener acceso al archivo php.ini común que se encuentra bajo el directorio/etc/php.ini pero el navegador accede al archivo php.ini del dominio. Puede ocurrir el problema

+1

Se trata de CLI, lo que es dominio indepentent. – KingCrunch

Cuestiones relacionadas