php-logo

Voici le message d’erreur PHP qui est apparu récemment dans mes logs Apache :

PHP Warning: strtotime(): 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 the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.

Ajout de la directive date.timezone dans php.ini

On commence par trouver le fichier php.ini qui est actuellement utilisé par le serveur. Il en existe plusieurs, suivant les modules activés donc on commence par repérer le bon avec :

php -i | grep 'Configuration File'

Résultat :

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
PHP Warning:  Unknown: 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 the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0

Effectivement, l’erreur est répétée même dans un simple phpinfo(). On édite donc notre fichier :

nano /etc/php5/cli/php.ini

La page de manuel des timezones nous indique toute la liste des fuseaux horaires disponibles. Nous choisissons celle qui correspond à l’emplacement de notre serveur : ‘Europe/ Paris ’.

On recherche la bonne directive avec Ctrl + W et en tapant :

date.

On trouve alors :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/manual/en/datetime.configuration.php#ini.date.timezone
;date.timezone =

qu’il faut modifier en :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = 'Europe/Paris'

On relance Apache pour prendre en compte la nouvelle configuration :

service apache2 restart

Ajout de la fonction date_default_timezone_set() dans votre script PHP

Il est fort possible que votre script PHP ne fonctionne pas si la fonction date_default_timezone_set() ne précède pas votre code concernant les fonctions relatives aux dates.

A lire :  Script PAL pour SAM Broadcaster : créer une playlist variée par rotation automatique

Vous devez donc éditer votre script et ajouter cette ligne avant votre code :

date_default_timezone_set('Europe/Paris');

Et voilà, problème réglé.

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ou ajouter de nouvelles fonctionnalités? Ou améliorer les performances de votre site?

Parlons de votre projet »

Articles en rapport:

Matt
Author

Matt est formateur, développeur expert WordPress et WooCommerce, et administrateur réseau chez Codeable.

2 Comments

  1. Avatar

    yes super tuto merci
    grâce à toi j’ai résolu mon problème de date pour mon site.
    par contre précision pour redemarrer un serveur centos la commande est « service httpd restart »

Écrire un commentaire

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :