php date_default_timezone_set nicht arbeiten, aber ini_set 'Datum.timezone' tut. Warum?
Wie der Titel sagt, kann jemand erklären, warum der code
ini_set( 'date.timezone', 'Europe/Athens' );
funktioniert, aber
date_default_timezone_set( 'Europe/Athens' );
nicht?
Ich war auf der Suche für eine Lösung zur Umwandlung eines timestamp und alles, was ich im Netz finden konnte, war der Einsatz von date_default_timezone_set
. Aber die Umstellung hatte immer 1 Stunde Unterschied.
Dann fand ich dieses Thema "strftime()
- Funktion zeigt falsche Zeit", die mit den init_set code (und danach habe ich RTM und fand heraus, dass es bereits in der Dokumentation erwähnt). Ich versuchte es und es funktionierte.
Aber ich habe keine Antwort gefunden, warum date_default_timezone_set
funktioniert nicht.
Kann jemand bitte erklären?
- sind timastamps nicht UTC und Athen wäre +1? vielleicht versuchen, Europe/Dublin
- Bitte teilen Sie den vollständigen code..
- Funktionierenden code pastebin.com/EQx9jeGm
- Nicht funktionierende code pastebin.com/c9HpwTF5
- sorry, aber ich verstehe nicht, Ihren Kommentar
- Haben Sie Fehler, Warnungen und Hinweise eingeschaltet? Gibt es eine chance, das Fehler log wird Ihnen sagen, ein bisschen mehr. Auch, was ist der Wert von
$item->pubDate
? Außerdem, in deinem nicht funktionierenden code, ich habe nicht bemerkt, einen Anruf zudate_default_timezone_set()
... wo wird das aufgerufen? - Es klingt wie Sie nur wollen, zu konvertieren von UTC in einer bestimmten Zeit-zone, die in dieser Antwort. Lassen Sie "Standard" aus, wenn Sie können.
- Ich würde übereinstimmen mit Matt Johnson. Ich möchte vermeiden, ändern Sie die Standard-Zeitzone, es sei denn, Sie sind tatsächlich die Korrektur für etwas (dh, Sie wollen, dass Ihr script [in Australien], um ausführen in Ihrer lokalen Zeitzone [sagen, Athen]). Wenn alles, was Sie wollen zu tun ist, konvertieren ein Zeitstempel, gibt es andere Möglichkeiten.
- welche server-software benutzt du? OS?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie verwenden eine alte version von PHP.
Versuchen
php -v
und überprüfen Sie Ihre PHP-version.Können Sie verwenden:
{}
- button im editor.localhost
server
Es ist ziemlich spät, ich habe das gleiche Problem und ich seh da den Unterschied, ich poste den screenshot von meinem localhost und meinem persönlichen server phpinfo für die Zeitzone.
Auf meinem localhost, date_default_timezone_set('[timezone]') funktioniert, aber auf dem server, ist es immer wieder die UTC. Auf Basis der php-doc, es sieht aus wie die timezone nicht gesetzt ist in der php ini von meinem server, so dass ich wahrscheinlich ignoriert die Zeitzone eingestellt, da kein Wert definiert ist zuvor.
Mithilfe der init_set, es macht die Zeitzone zur Verfügung stehen. Ich denke, dass die Zeitzone nicht fest auf die php-ini ist die Ursache.