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.
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).
Avez-vous essayé de régler le fuseau horaire par func: http://pl.php.net/manual/en/function.date-default-timezone-set.php
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:
... et redémarrez Apache. Les paramètres de fuseau horaire doivent être reconnus à ce stade.
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.
essayez ceci, cela fonctionne pour moi.
date_default_timezone_set('America/New_York');
Dans le fichier réel qui se plaignait.
É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.
Veuillez modifier votre index.php comme suit:
require_once($yii);
$app = Yii::createWebApplication($config);
Yii::app()->setTimeZone('UTC');
$app->run();
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.
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.
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
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.