web-dev-qa-db-fra.com

PHP mauvaise date/heure

PHP date() & time() renvoie une heure incorrecte:

Lorsque date.timezone = "Europe/Riga" l'heure renvoyée par date() était 03-12-2011 08:57:12, alors que l'heure système était 03-12-2011 01:57:12 (fuseau horaire Europe/Riga - heure correcte à ce moment-là). Lorsque j'ai remplacé le fuseau horaire par "Europe/London", l'heure est passée à 03-12-2011 06:57:12 ( temps réel 02-12-2011 23:57:12)

Le temps renvoyé par date/hwclock --show était correct (03-12-2011 01:57:12 avec le fuseau horaire du système défini sur Riga)

OS: Debian 6.0

J'ai vérifié la plupart des questions concernant des problèmes similaires sur SO/Google, mais elles semblent toutes avoir un fuseau horaire incorrect.

Autant que je sache, il existe un problème entre php -> os. Bien sûr, comme le décalage temporel incorrect est toujours constant, je pourrais soustraire la différence, mais ce n’est pas une solution appropriée.

Toutes les idées seront grandement appréciées. 

10
relic

Le problème ressemble à ce que j'ai vu sur l'un de mes serveurs. On dirait que bug dans php 5.3.2-1 . Essayez d'exécuter le script php dans le rapport de bogue et publiez vos résultats.

5
Arie Skliarouk

Lire le manuel PHP semble indiquer que le comportement de date.timezone est affecté par les paramètres du php.ini. c'est le date_default_timezone_set . Essayez de le configurer avec:

date_default_timezone_set('Europe/Riga');

au lieu de votre date.timezone code.

14
Marco Pace

Le fuseau horaire du système peut être incorrect. Cela se traduit par un décalage dans l'heure donnée par la fonction PHP date (), bien que php date.timezone (dans php.ini) et l'heure système du serveur soient correctes. 

3
user2317245

J'ai eu quelques problèmes avec le fuseau horaire aussi. Cela peut être utile pour quelqu'un. 

Dans mon cas, Chile Sumer Time CLST a renvoyé un décalage de timzeone incorrect.

Mettre à jour le timezonedb a fonctionné pour moi.

Allez à: https://pecl.php.net/package/timezonedb

Pour Windows Téléchargez la dernière version de dll, copiez-la dans le répertoire "ext". Editez le php.ini et mettez la ligne ci-dessous:

extension = php_timezonedb.dll

Pour Linux Vous pouvez utiliser:

pecl installer timezonedb

et dans php.ini mis:

extension = php_timezonedb.so

1
Piotr

Ce commentaire pour le fuseau horaire Azerbaïdjan

J'ai un problème avec 'Asia/Baku' sur php 7.2 ou php version 7.1.

J'ai résolu le problème en 'Europe/Bakou'

0
Turan Zamanlı