Ich habe in der php.ini Datei die Standardzeitzone eingestellt:
%Vor% Ich habe auch httpd
service nach der Bearbeitung neu gestartet (service httpd restart), aber wenn ich date_default_timezone_get()
aufruft, gibt es den 'UTC' Wert zurück.
Warum passiert das?
Auch der Aufruf von php_info()
zeigt die in php.ini
PS. Entschuldigung für mein Englisch.
Wenn Ihr Code (einschließlich aller Frameworks) die Zeitzone wirklich ändert und Sie unter einer PHP-Version von 5.1.x bis 5.3.x laufen, ist es möglich, dass TZ
Umgebungsvariable ist irgendwo in Ihrem System festgelegt. Dann würde Ihre date.timezone
Einstellung ignoriert werden .
Siehe die PHP-Manpage von date.timezone
(Hervorhebung von mir) :
Die Standardzeitzone, die von allen Datums- / Uhrzeitfunktionen verwendet wird. Vor PHP 5.4.0 funktionierte das nur, wenn die TZ-Umgebungsvariable nicht gesetzt war . [...]
Um zu überprüfen, ob die Umgebungsvariable TZ
in Ihrem System gesetzt ist, können Sie
oder put
%Vor%irgendwo in Ihrem Code und überprüfen Sie den "PHP-Variablen" Abschnitt ganz unten in seiner Ausgabe.
Ich hatte gerade das gleiche Problem.
In meiner php.ini
war die Zeitzone gut informiert:
date.timezone = Europe/Paris
Ich habe das mit dem PHP-Befehl --ri date
überprüft
und Zeitzone in php.ini
wurde gut behandelt, daher stammt der Fehler nicht von der INI-Datei.
Der Fehler kam von der Datei httpd.conf
apache, in der die Variable PHPIniDir deklariert ist.
Ich hatte PHPIniDir "C:\PHP\"
Sie müssen den letzten Schrägstrich entfernen, der folgendes ergibt:
PHPIniDir "C:\PHP"
Ich hoffe, dieses Feedback wird Ihnen helfen.
(Nur eine Genauigkeit, meine Umgebung ist: Windows 7, PHP 5.4.32 und Apache 2.2.25)