erreur de fuseau horaire par défaut en php
-
22-07-2019 - |
Question
J'ai eu l'erreur / l'avertissement suivant lors de l'installation de Kohana / SilverStripe.
Qu'est-ce que cela signifie et que dois-je faire pour cela?
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
Merci d'avance!
La solution
Ceci n'est pas une erreur, mais un avertissement, de sorte que votre application ne soit pas bloquée.
Définissez explicitement le fuseau horaire correct à l'aide de date_default_timezone_set () dans C: \ Server \ apache \ htdocs \ kohana \ system \ core \ Kohana.php à la ligne 136
Vous devez choisir parmi les fuseaux horaires valides
.Modifier
Comme le message d'avertissement l'indique vous-même, vous avez un choix plus propre que la modification d'un fichier logiciel tiers. C'est à dire. configurer PHP comme il se doit.
- éditez votre
php.ini
et ajustez la valeur dedate.timezone = America / New_York
ou
- utilisez une directive
php_value
dans la configuration de votre serveur Web pour la définir dans votre configuration vhost ou.htaccess
:php_value date. fuseau horaire America / New_York
Autres conseils
Le commentaire de l'OP sur sa propre question ci-dessus implique que le fuseau horaire par défaut ne peut pas être défini dans le fichier php.ini, ce qui n'est pas vrai & # 8212; En fait, dans de nombreux cas, il est préféré . Et, comme cette réponse SO est l’un des premiers hits de Google concernant "l'erreur du fuseau horaire php par défaut", je vais sauver les autres pour des raisons de santé.
Une cause très courante de cette erreur n’est pas tant de mal orthographier la zone ville ou pays (par exemple, "New York", "Los Angeles") dans le fichier php.ini utilisé, mais plutôt d’inclure des espaces plutôt que des traits de soulignement dans l'identifiant, et donc "une faute de frappe". la constante complète.
Cela fera également ce que vous voulez, sans avoir à le définir sur chaque page au moment de l'exécution (vérifié sur PHP 5.4 et 5.3, sous Windows, Linux et OSX):
Dans 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 *
De même, si vous avez vérifié et revérifié l'orthographe et que vous êtes certain , assurez-vous de modifier le fichier réel php.ini utilisé:
Contexte Web (créez un fichier de test test.php , puis confirmez le date.timezone
):
<?php phpinfo(); ?>
Ligne de commande Linux / OSX:
$ php -i | grep "timezone"
Windows en ligne de commande:
C:\> php -i | find "timezone"
L'ordre de priorité pour récupérer la configuration de fuseau horaire de date par défaut est expliqué en détail ici .
Si vous ne pouvez pas changer php.ini
, ajoutez-le à votre _ss_environment.php
ou à mysite / _config.php
fichiers:
date_default_timezone_set ('...');
où ...
est l'un des fuseaux horaires PHP valides.