web-dev-qa-db-ger.com

PHP falsches Datum/Uhrzeit

PHP date() & time() gibt falsche Zeit zurück:

Wenn date.timezone = "Europe/Riga" die von date() zurückgegebene Zeit war 03-12-2011 08:57:12, aber die Systemzeit 03-12-2011 01:57:12 (Zeitzone Europa/Riga - korrekte Uhrzeit). Als ich die Zeitzone in "Europa/London" änderte, wurde die Zeit in 03-12-2011 06:57:12 geändert ( Istzeit 02-12-2011 23:57:12)

Die von date/hwclock --show zurückgegebene Zeit war korrekt (03-12-2011 01:57:12, wobei die Zeitzone des Systems als Riga festgelegt wurde)

Betriebssystem: Debian 6.0

Ich habe die meisten Fragen zu ähnlichen Problemen bei SO/Google geprüft, aber es scheint, als hätten sie eine falsche Zeitzone angegeben.

Soweit ich das beurteilen kann, gibt es ein Problem zwischen php -> os. Da der falsche Zeitversatz immer konstant ist, könnte ich die Differenz natürlich abziehen, aber es ist keine richtige Lösung.

Alle Ideen werden sehr geschätzt. 

10
relic

Das Problem sieht ähnlich aus wie auf einem meiner Server. Sieht so aus, als würde ich den Fehler in ph 5.3.2-1 mögen. Versuchen Sie, das PHP-Skript im Fehlerbericht auszuführen und Ihre Ergebnisse zu veröffentlichen.

5
Arie Skliarouk

Das Lesen von PHP manual scheint das Verhalten von date.timezone von den Einstellungen in php.ini zu beeinflussen. Es gibt eine andere Möglichkeit, die Standardzeitzone in allen Datums-/Zeitfunktionen und einzustellen Es ist das date_default_timezone_set . Versuchen Sie es mit:

date_default_timezone_set('Europe/Riga');

anstelle Ihres date.timezone -Codes.

14
Marco Pace

Die Zeitzone des Systems könnte falsch sein. Dies führt zu einer Verschiebung in einer durch die PHP date () - Funktion angegebenen Zeit, obwohl sowohl php date.timezone (in php.ini) als auch die Systemzeit des Servers korrekt sind. 

3
user2317245

Ich hatte auch Probleme mit der Zeitzone. Dies kann für jemanden nützlich sein. 

In meinem Fall lieferte Chile Sumer Time CLST einen falschen Timzeone-Offset.

Die Aktualisierung der timezonedb hat für mich funktioniert.

Gehe zu: https://pecl.php.net/package/timezonedb

Für Widnows Lade die neueste Version von DLL in das "ext" Verzeichnis. Bearbeiten Sie die php.ini und setzen Sie sie unter die Zeile:

extension = php_timezonedb.dll

Für Linux Sie können verwenden:

pecl install timezonedb

und in php.ini setzen:

extension = php_timezonedb.so

1
Piotr

Dieser Kommentar zur Zeitzone von Aserbaidschan

Ich habe Probleme mit 'Asia/Baku' in Version 7.2 oder Version 7.1.

Ich habe den Problemwechsel in 'Europa/Baku' gelöst.

0
Turan Zamanlı