2011-07-21 4 views
0

Que se passe-t-il lorsque l'heure du serveur est écoulée de 12 heures? Je travaille sur un site pour un ami, et j'ai remarqué que bien que le serveur soit dans notre fuseau horaire, il est 12 heures derrière nous lors de l'écriture des enregistrements dans la base de données. Alors je l'ai fait les contrôles comme si:Problème de fuseau horaire

<?php echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time())); 
    phpinfo(); 
?> 

Résultat:

It is Thu on Jul 21, 2011, 04:46:46 time zone: GMT 
... 

date 

date/time support enabled 

"Olson" Timezone Database Version 2010.15 

Timezone Database internal 

Default timezone Pacific/Auckland 


Directive Local Value Master Value 

date.default_latitude 31.7667 31.7667 

date.default_longitude 35.2333 35.2333 

date.sunrise_zenit 90.583333 90.583333 

date.sunset_zenith 90.583333 90.583333 

date.timezone Pacific/Auckland Pacific/Auckland 

Demandez vous pouvez le voir, les rapports PHP 04h46. C'est vraiment 16h46 ici. Il indique GMT comme fuseau horaire, mais PHPinfo signale que Pacific/Auckland est le fuseau horaire (GMT + 12).

J'ai demandé à l'hébergeur ce qui se passait. Ils n'étaient pas sûrs, car l'heure du système était correcte. Et aucun autre fichier php.ini n'a été introduit.

Des idées?

+0

Qu'est-ce que c'est "..." après "fuseau horaire: GMT"? est-ce que tu laisses quelque chose? – tehvan

+0

Q: Qu'est-ce qu'une base de données, et qu'obtenez-vous lorsque vous appelez "getdate()" (ou équivalent) pour la base de données. Au hasard, PHP pourrait encore être le coupable, regardez ici les problèmes de réconciliation de date.default_timezone, $ TZ et date.timezone,: http://www.php.net/manual/fr/function.date-default-timezone- get.php – paulsm4

+0

La base de données est MySQL, et les fonctions de temps viennent de retourner "système". Le logiciel qui a déclenché cette chasse est Joomla ... qui, je le soupçonne, est une mauvaise manipulation du temps. – Onyx

Répondre

1

gmstrftime indique l'heure GMT, ce qui me semble correct. Vous avez besoin de strftime pour obtenir votre heure locale (AKL). php.ini a probablement son fuseau horaire réglé sur AKL, ce qui est encore correct. La bonne question est "qu'est-ce que strftime (ou toute autre fonction PHP time time)?"

+0

Merci beaucoup, c'est correct ... il aide à utiliser la bonne fonction !! strftime signale NZST, correctement. – Onyx

0

gmstrftime De par sa nature même, il indique les heures en GMT. Voilà à quoi sert le gm. :)

+0

Woops J'aurais dû fournir un lien. Vous voilà: http://php.net/manual/fr/function.gmstrftime.php. –

+0

Merci ... il aide à utiliser la bonne fonction;) – Onyx