2013-05-12 6 views
6

diesen Code Angenommen:Ein möglicher PHP-Bug mit date_default_timezone_set und Datum?

<?php 
date_default_timezone_set('UTC'); 
$time = gmmktime(14, 50, 0, 5, 12, 2013); 
echo date('Y-m-d H:i:s O', $time).'<br />'; 
echo gmdate('Y-m-d H:i:s O', $time).'<br />'; 

date_default_timezone_set('GMT'); 
$time = gmmktime(14, 50, 0, 5, 12, 2013); 
echo date('Y-m-d H:i:s O', $time).'<br />'; 
echo gmdate('Y-m-d H:i:s O', $time); 
?> 

auf meinem lokalen Server erhalte ich die Ausgabe:

2013-05-12 14:50:00 +0000 
2013-05-12 14:50:00 +0000 
2013-05-12 14:50:00 +0000 
2013-05-12 14:50:00 +0000 

Aber der gleiche Code erzeugt auf Produktion:

2013-05-12 10:50:00 -0400 
2013-05-12 14:50:00 +0000 
2013-05-12 14:50:00 +0000 
2013-05-12 14:50:00 +0000 

der Maschine ändern Zeit doesn Auswirkungen auf die Ausgabe in keiner Weise.

Einige Informationen:

$ date +%Z 
GMT 
$ date +%z 
+0000 
  • PHP 5.3.25 (cli) (gebaut: May 11 2013 09:54:00)
  • CentOS Release 5.9 (Final)
+1

Jede aufgelöst PHP Hinweise oder Warnungen in Ihren Serverprotokollen? – Jocelyn

+1

@Jocelyn Er findet keine Fehler oder Warnungen, es ist '-0400' was sich ändert –

+0

@ Mr.Alien Ich habe die Frage bereits gelesen. Sie können nicht wissen, ob etwas im Fehlerprotokoll ist oder nicht. – Jocelyn

Antwort

1

phpinfo() zeigte "Olson" Zeitzone Database Version als 0.system, so habe ich den Befehl

pecl upgrade timezonedb 

und hinzugefügt

extension=timezonedb.so 

php.ini

Nach dem Neustart des Servers, das Problem mit der neuen Zeitzone DB Version wurde 2013,3

0

Könnte sein, es ist nicht über Code ..

Wenn "O" ist Differenz zu Greenwich-Zeit (GMT) in Stunden .. vielleicht Zeiteinstellung in der Produktion Computer i s nicht richtig eingestellt ..

Verwandte Themen