2013-02-26 13 views
8

Wie der Titel schon sagt, kann jemand erklären, warum der Codephp - date_default_timezone_set funktioniert nicht, aber ini_set 'date.timezone' tut. Warum?

ini_set('date.timezone', 'Europe/Athens'); 

funktioniert, aber

date_default_timezone_set('Europe/Athens'); 

nicht?

Ich suchte nach einer Lösung, um einen Zeitstempel zu konvertieren, und alles, was ich im Internet finden konnte, war date_default_timezone_set zu verwenden. Aber die Umstellung hatte immer 1 Stunde Unterschied.

Dann habe ich dieses Thema "strftime() function showing incorrect time" gefunden, die den init_set-Code verwendet (und danach habe ich RTM und herausgefunden, dass es bereits in der Dokumentation erwähnt wird). Ich habe es versucht und es hat funktioniert.

Aber ich habe keine Antwort gefunden, warum date_default_timezone_set nicht funktioniert.

Kann mir bitte jemand erklären?

+0

sind timastamps nicht UTC und Athen wäre +1? vielleicht versuchen Europa/Dublin – KevInSol

+0

Bitte teilen Sie den vollen Code .. – Evert

+0

Code http://pastebin.com/EQx9jeGm –

Antwort

2

Sie müssen eine alte Version von PHP verwenden.

date_default_timezone_set is for PHP 5.1.2 and above. 

Versuchen Sie php -v und überprüfen Sie Ihre PHP-Version.

0

können Sie verwenden:

putenv("TZ=Europe/Berlin"); // PHP 4 
+0

Sie können Ihren Code mit dem Button ** '{}' ** im Editor formatieren. – kdbanman

0

localhost

server

Es ist ziemlich spät, ich habe das gleiche Problem, und ich sehe es ist der Unterschied, ich den Screenshot von meinem localhost posten und Mein persönlicher Server phpinfo für die Zeitzone.

Auf meinem localhost funktioniert date_default_timezone_set ('[timezone]') korrekt, auf dem Server gibt es jedoch immer die UTC zurück. Basierend auf dem php doc sieht es so aus, als ob die Zeitzone nicht in der php ini meines Servers eingestellt ist, daher ignorierte ich wahrscheinlich die eingestellte Zeitzone, da zuvor kein Wert definiert wurde.

Mit dem init_set wird die Zeitzone verfügbar gemacht. Ich denke, die Zeitzone ist nicht auf dem PHP-Ini vordefiniert ist die Ursache.

Verwandte Themen