Heim > Artikel > Backend-Entwicklung > Warum muss PHP die Zeitzone einstellen?
Da PHP5.0 die Funktion data() neu geschrieben hat, ist die aktuelle Datums- und Uhrzeitfunktion 8 Stunden kleiner als die Systemzeit und die Standardeinstellung der PHP-Sprache ist die Standard-Greenwich-Zeit (d. h. es wird die Zeitzone Null verwendet). ), um also die aktuelle Ortszeit zu erhalten, müssen Sie die Zeitzoneneinstellung in der PHP-Sprache ändern.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Zeit ist im Leben wichtig, und das gilt auch für PHP. Manchmal muss Zeit gespeichert werden, um etwas aufzuzeichnen oder im Browser angezeigt.
In PHP werden Datum und Uhrzeit über Datums- und Uhrzeitfunktionen ermittelt. Die Datums- und Uhrzeitfunktionen hängen von der Zeiteinstellung des Servers ab. Die Zeiteinstellung des Servers ist standardmäßig auf Greenwich Time (Zeitzone Null) eingestellt. Wenn die Zeit nicht speziell auf eine bestimmte Zeitzone eingestellt ist, wird die Zeit verwendet, die über die entsprechenden PHP-Funktionen ermittelt wird Es handelt sich um die Zeitzone Null. Es sind 8 Stunden weniger als die Pekinger Zeit.
Einteilung der Zeitzonen
Die Welt ist in 24 Zeitzonen unterteilt. Die Ortszeit jeder Zeitzone unterscheidet sich beispielsweise um 1 bis 23 Stunden , der Ortszeit in London, Großbritannien und der Ortszeit in Peking. Der Zeitunterschied beträgt 8 Stunden.
Im Bereich der internationalen Funkkommunikation wird eine einheitliche Zeit verwendet, die als Universal Time Coordinated (UTC) bezeichnet wird und mit der Greenwich Mean Time (GMT) identisch ist.
Zeitzoneneinstellung in PHP
Aufgrund des Umschreibens der data()-Funktion in PHP5.0 ist die aktuelle Datums- und Uhrzeitfunktion 8 Stunden weniger als die Systemzeit. Die Standardeinstellung der PHP-Sprache ist die Standard-Greenwich-Zeit (d. h. es wird die Zeitzone Null verwendet). Um die aktuelle Ortszeit zu erhalten, müssen Sie also die Zeitzoneneinstellung in der PHP-Sprache ändern.
Es gibt drei Möglichkeiten, die Zeitzone in PHP festzulegen. Nachfolgend stellen wir Ihnen jede vor.
1) In der Konfigurationsdatei festlegen
PHPs Konfigurationsdatei ist die Datei php.ini im PHP-Installationsverzeichnis. Suchen und öffnen Sie sie. Suchen Sie dann in der Datei nach date.timezone
, date.timezone
,
将;date.timezone =
前面的;
与 PHP 中的//
功能相同,都是注释的意思,这里我们需要将这个;
;
vor ;date.timezone =
durch den / / in PHP
hat die gleiche Funktion und bedeutet einen Kommentar. Hier müssen wir diesen ;
entfernen und die entsprechende Zeitzonenkennung nach dem = in diesem Satz einfügen, wie unten gezeigt:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/ShanghaEinige häufig verwendete Zeitzonenkennungen und ihre Bedeutung:
Asien/Hong_Kong — — Hongkong
Asien/Macao —— Macao
Asien/Taipeh —— Taipeh
Asien/Singapur —— Singapur
PRC —— China-Zeitzone
Im Inland, Wir werden die Zeitzone auf „Asien/Shanghai oder China“ einstellen. Denken Sie daran, den Server nach erfolgreicher Einstellung neu zu starten!
2) Verwenden Sie die Funktion ini_set(), um die Zeitzone festzulegen.
Die Funktion ini_set() in PHP kann den Wert der angegebenen Konfigurationsoption festlegen. Diese Konfigurationsoption behält den neuen Wert bei, wenn das Skript ausgeführt wird , und wird wiederhergestellt, wenn das Skript endet. Das Syntaxformat der Funktion lautet wie folgt:
ini_set($varname, $newvalue)
wobei $varname die zu ändernde Konfigurationsoption und $newvalue der neue Wert der Konfigurationsoption ist.
Tipps: Die Funktion ini_set() kann nicht alle Konfigurationsoptionen ändern. Sie können die Konfigurationsoptionen anzeigen, die geändert werden können, indem Sie „https://www.php.net/manual/zh/ini.list.php“ besuchen.
【Beispiel】Verwenden Sie die Funktion ini_set(), um die Zeitzone festzulegen.
<?php header("Content-type:text/html;charset=utf-8"); ini_set('date.timezone', 'GMT'); echo '当前的格林尼治时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'Asia/Urumqi'); echo '乌鲁木齐的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'Asia/Shanghai'); echo '上海的当前时间为:'.date('Y-m-d H:i:s',time()); ?>
Die laufenden Ergebnisse sind wie folgt:
当前的格林尼治时间为:2021-07-16 12:25:11 乌鲁木齐的当前时间为:2021-07-16 20:25:11 上海的当前时间为:2021-07-16 20:25:11
3) Verwenden Sie die Funktion date_default_timezone_set(), um die Zeitzone festzulegen.
Die Funktion date_default_timezone_set() in PHP kann eine Standardzeitzone für alle Zeit- und Datumsfunktionen in festlegen Das Syntaxformat lautet wie folgt:
date_default_timezone_set($timezone_identifier)
Der Parameter $timezone_identifier ist die Zeitzonenkennung, z. B. UTC (Greenwich Mean Time) oder Europa/Lissabon (Portugal).
Seit PHP5.1.0 (die Datums- und Uhrzeitfunktion wurde in dieser Version neu geschrieben) generiert jeder Aufruf der Datums- und Uhrzeitfunktion eine Fehlermeldung auf E_NOTICE-Ebene, wenn die Systemeinstellung oder die TZ-Umgebung ungültig ist Wenn die Variable verwendet wird, werden auch Nachrichten auf E_STRICT-Ebene generiert.
【Beispiel】Verwenden Sie die Funktion date_default_timezone_set(), um die Zeitzone festzulegen.
<?php header("Content-type:text/html;charset=utf-8"); date_default_timezone_set('Asia/Urumqi'); echo '乌鲁木齐的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('Europe/Lisbon'); echo '葡萄牙的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('Asia/Shanghai'); echo '上海的当前时间为:'.date('Y-m-d H:i:s',time()); ?>
Die laufenden Ergebnisse sind wie folgt:
乌鲁木齐的当前时间为:2021-07-16 20:25:28 葡萄牙的当前时间为:2021-07-16 13:25:28 上海的当前时间为:2021-07-16 20:25:28
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWarum muss PHP die Zeitzone einstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!