Domanda

Ho ricevuto il seguente errore / avviso durante il tentativo di installare Kohana / SilverStripe.
Cosa significa e cosa devo fare per questo?

Warning:
date_default_timezone_get():
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 'Asia/Calcutta' for '5.5/no DST' instead in C:\Server\apache\htdocs\kohana\system\core\Kohana.php on line 136

Grazie in anticipo!

È stato utile?

Soluzione

Questo non è un errore, ma un avvertimento, quindi non blocca il funzionamento della tua app.

Imposta esplicitamente il fuso orario corretto usando date_default_timezone_set () in C: \ Server \ apache \ htdocs \ kohana \ system \ core \ Kohana.php sulla linea 136

Devi scegliere tra fusi orari validi


Modifica

Come lo stesso messaggio di avviso afferma che in realtà hai una scelta più pulita rispetto alla modifica di un file software di terze parti. Cioè configurare PHP come dovrebbe essere.

  • modifica il tuo php.ini e regola il valore di date.timezone = America / New_York

o

  • usa una direttiva php_value nella configurazione del tuo server web per impostarla nella tua configurazione vhost o .htaccess : php_value date. fuso orario America / New_York

Altri suggerimenti

Il commento dell'OP alla sua stessa domanda implica che il fuso orario predefinito non può essere impostato in php.ini, il che non è vero - in effetti, in molti casi impostarlo è preferito . E poiché questa risposta SO è uno dei primi successi in Google per "errore di fuso orario predefinito php", salverò altri un po 'di sanità mentale persa.

Una causa molto comune di questo errore non è tanto l'ortografia errata della città o del paese della zona (ad esempio "New York", "Los Angeles") nel file php.ini in uso, ma invece di includere incorporato spazi anziché caratteri di sottolineatura nell'identificatore, e quindi "errore ortografico" la costante completa.

Questo farà anche quello che vuoi, senza doverlo impostare su ogni pagina in fase di esecuzione (verificato su PHP 5.4 e 5.3, in Windows, Linux e OSX):

In php.ini :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York
;               ^^^^^^^^^^^^^^^^  * Must_Use_Underscores *


Inoltre, se hai controllato e ricontrollato l'ortografia e certo è corretto, assicurati di modificare il file phi.i effettivo che viene utilizzato:

Contesto Web (creare un file di test test.php , quindi confermare date.timezone ):     

 <?php phpinfo(); ?> 

Riga di comando Linux / OSX:

$ php -i | grep "timezone" 

Windows della riga di comando:

C:\> php -i | find "timezone" 


L'ordine di precedenza per il recupero della configurazione predefinita del fuso orario data è spiegato in dettaglio qui .

Se non hai la possibilità di cambiare php.ini , aggiungilo al tuo _ss_environment.php o mysite / _config.php file:

date_default_timezone_set ( '...');

dove ... è uno dei fusi orari PHP validi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top