web-dev-qa-db-fra.com

Comment réparer l'avertissement de date () en PHP "

J'utilise XAMPP (PHP version 5.3.1) sur winxp. Lorsque j'essaie d'appeler la fonction time () ou date () sur mon hôte local. Il affichera un message d'avertissement comme ceci,

Gravité: avertissement

Message: date () [function.date]: Il n'est pas sûr de se fier aux paramètres de fuseau horaire du système. Vous êtes obligatoire pour utiliser le paramètre date.timezone ou la fonction date_default_timezone_set (). Si vous avez utilisé l'une de ces méthodes et que vous recevez toujours cet avertissement, vous avez très probablement mal orthographié l'identificateur de fuseau horaire. Nous avons plutôt sélectionné 'UTC' pour '8.0/no DST'

Nom de fichier: helpers/date_helper.php

Comment désactiver l'avertissement? Merci.

33
Nano HE

Essayez de définir date.timezone Dans le fichier php.ini. Ou vous pouvez le régler manuellement à l'aide de ini_set() ou date_default_timezone_set().

59
Alex Pliutau

Vous devez définir le smth de fuseau horaire par défaut comme ceci:

date_default_timezone_set('Europe/Bucharest');

Plus d'informations à ce sujet dans http://php.net/manual/en/function.date-default-timezone-set.php

Ou vous pouvez utiliser @ devant la date pour supprimer l'avertissement cependant car l'avertissement indique qu'il n'est pas sûr de s'appuyer sur le fuseau horaire par défaut du serveur

19
Poelinca Dorin

Vous pouvez également utiliser ceci:

ini_alter('date.timezone','Asia/Calcutta');

Vous devez l'appeler avant d'appeler une fonction de date. Il accepte la clé comme premier paramètre pour modifier les paramètres PHP pendant l'exécution et le deuxième paramètre est la valeur.

J'avais fait ces choses avant de comprendre ceci:

  1. Changé le PHP.timezone en "Asia/Calcutta" - mais n'a pas fonctionné
  2. Modification des paramètres lat et long dans l'ini - ne fonctionnait pas
  3. date_default_timezone_set("Asia/Calcutta"); utilisée - n'a pas fonctionné
  4. ini_alter() - IL A FONCTIONNÉ
  5. Commenté date_default_timezone_set("Asia/Calcutta"); - IL A FONCTIONNÉ
  6. Annulé les modifications apportées au PHP.ini - IT WORKED

Pour moi, la méthode init_alter() a tout fonctionné.

J'utilise Apache 2 (pré-installé), PHP 5.3 sur OSX Mountain Lion

10
Sumeet Basak

Cela m'arrive parce que dans le php.ini la date.timezone n'était pas définie!

; date.timezone = Europe/Berlin

L'utilisation de la fonction php date () a déclenché cet avertissement.

3
cottton
error_reporting(E_ALL ^ E_WARNING);

:)

Vous devez changer sous "Comment réparer l'avertissement de date () en PHP" ...

0
Dejan Marjanovic