Es gibt zwei Formatierungsfunktionen für die Zeit in PHP: date() und gmdate(). Die Beschreibung in der offiziellen Dokumentation lautet:
date – formatiert eine lokale Zeit/ein lokales Datum.
gmdate – formatiert ein GMT/UTC-Datum/eine GMT/UTC-Datum/Uhrzeit, zurückgegeben wird Greenwich Mittlere Zeit (GMT).
Wenn die Zeitzone, in der wir uns gerade befinden, beispielsweise +8 ist, sollte die vom Server, der das folgende Skript ausführt, zurückgegebene Zeit so aussehen:
Als aktuelle Zeit wird angenommen, dass sie 2007-03-14 12:15:27 ist
. echo date( 'Ymd H:i:s ', time()); Die Ausgabe ist: 2007-03-14 12:15:27
echo gmdate('Ymd H:i:s', time()); -03-14 04:15:27
Dies ist jedoch nur das Ergebnis der Ausführung von PHP unter Linux+Apache. Wenn es unter Windows ausgeführt wird, geben die beiden Funktionen Folgendes zurück: 2007-03-14 04:15:27.
Daher sollten wir eine kompatible Schreibweise angeben, gmdate einheitlich verwenden und die aktuelle Zeitzone manuell festlegen. Die Schreibmethode wird wie folgt verbessert:
echo gmdate('Ymd H:i:s', time() + 3600 * 8 );
Auf diese Weise werden sowohl unter Apache als auch unter Windows korrekte Ergebnisse erzielt, wenn die Website nur für die ganze Welt bestimmt ist Die Zeitzone muss festgelegt werden, und das Programm berechnet die Zeit automatisch basierend auf der vom Benutzer eingestellten Zeitzone. In der Datenbank wird nur die von der aktuellen Zeit () generierte Zeit gespeichert China +8 Zeitzone ist: 14.03.2007 12:15:27, dann sehen Benutzer in Europa +2 Zeitzone Die Veröffentlichungszeit dieser Informationen ist: 14.03.2007 06:15:27, also die Zeit von Die Informationen werden alle korrekt übereinstimmen.