web-dev-qa-db-fra.com

PHP Configuration: il n'est pas prudent de s'appuyer sur les paramètres de fuseau horaire du système

Voici un étrange. Je viens de passer à PHP 5.3.0 et depuis la mise à jour, je reçois l'avertissement suivant:

Attention: getdate () [function.getdate]: Il n’est pas sûr de compter sur le système paramètres de fuseau horaire. Vous êtes requis utiliser le paramètre date.timezone ou le date_default_timezone_set () une fonction. Dans le cas où vous avez utilisé l'un des ces méthodes et vous êtes toujours Pour obtenir cet avertissement, vous avez probablement mal orthographié l'identifiant du fuseau horaire. Nous sélectionné 'Amérique/Chicago' pour 'CST/-6.0/no DST'

Après avoir cherché dans divers forums, tout le monde a dit que pour résoudre le problème, il suffisait de modifier la zone de date dans le fichier php.ini et de redémarrer Apache.

Cela n'a pas fonctionné pour moi. 

J'ai essayé 

date.timezone="America/New_York"

date.timezone=America/New_York

date.timezone="US/Central"

Apache redémarré après avoir effectué le changement.

Comme je possède toujours l'ancienne version de php, je me suis même assuré d'éditer le fichier php.ini utilisé par la version actuelle de php pour charger 

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

Toujours recevoir l'avertissement. 

Aucune suggestion? 

Merci de prendre le temps.

64
Ole Media

Tchalvak, qui a commenté la question initiale, a mis le doigt sur ma tête. J'ai édité (j'utilise Debian):

/etc/php5/Apache2/php.ini

... qui avait le fuseau horaire correct pour moi et qui était le seul fichier .ini chargé avec date.timezone, mais je recevais l'erreur ci-dessus lorsque j'ai exécuté un script via Bash. Je ne savais pas que j'aurais dû éditer:

/etc/php5/cli/php.ini

ainsi que. (Eh bien, pour moi, c'était "aussi", pour vous, cela pourrait bien être différent, mais je vais synchroniser mes versions Apache et CLI de php.ini).

37
Vaughany

Avez-vous essayé de régler le fuseau horaire par func: http://pl.php.net/manual/en/function.date-default-timezone-set.php

16
cichy

Il m'est arrivé de configurer Apache & PHP sur deux ordinateurs portables récemment. Après beaucoup de pleurs et de grincements de dents, j'ai remarqué dans la sortie de phpinfo que (pour une raison quelconque: ne pas faire attention pendant l'installation de PHP, mauvais installateur), Apache s'attendait à ce que php.ini soit quelque part où il ne l'était pas. 

Deux choix: 

  1. mettez-le où Apache pense qu'il devrait être ou 
  2. pointez Apache sur le vrai emplacement de votre php.ini

... et redémarrez Apache. Les paramètres de fuseau horaire doivent être reconnus à ce stade.

7
Garvin

Ouvrez votre fichier .htaccess, ajoutez cette ligne au fichier, enregistrez-le et réessayez:

php_value date.timezone "America/Sao_Paulo"

Cela fonctionne pour moi.

6
codex

essayez ceci, cela fonctionne pour moi.

date_default_timezone_set('America/New_York');

Dans le fichier réel qui se plaignait. 

5
selangk

Évidemment, je suis un peu hors saison sur cette question mais pour le bénéfice du prochain patient: je viens d'avoir ce problème et dans mon cas (contrairement à OP qui a essayé la même chose sans succès) le correctif était de réviser php .ini , en train de changer 

date.timezone = America/New York

à 

date.timezone = America/New_York

C'est ajouter le trait de soulignement.

2
user1613163

Veuillez modifier votre index.php comme suit:

require_once($yii);
$app = Yii::createWebApplication($config);
Yii::app()->setTimeZone('UTC');
$app->run();
2
Ashutosh Nigam

Recherchez les erreurs de syntaxe dans le fichier php.ini, spécialement les paramètres before Date qui empêchent le fichier d’être analysé correctement.

2
amercader

Vous avez peut-être oublié de supprimer le point-virgule pour supprimer le commentaire de cette ligne. Pour la ligne date.timezone = "US/Central", assurez-vous qu'il n'y a pas de point-virgule devant cette ligne. 

1
SirNikkolas

J'ai modifié /etc/php.ini 

[Rendez-vous amoureux]; Définit le fuseau horaire par défaut utilisé par les fonctions de date ; http://php.net/date.timezone date.timezone = ('Asia/kolkata')

et maintenant fonctionne bien.

Vipin Pal

1
Vipin Pal

J'ai trouvé, bizarrement, que je pouvais réparer les erreurs en plaçant la déclaration de fuseau horaire au sommet de mon fichier php.ini. 

C'était déjà dans mon php.ini. Deux fois, en fait. Et je me tirais les cheveux parce que tout le monde disait qu'il devait y avoir un autre ini chargé ... Il n'y en avait pas.

J'espère que cela permettra à quelqu'un d'autre d'économiser du temps/une perte de cheveux.

0
Soft Bullets