Hay dos funciones de formato para la hora en PHP: date() y gmdate(). La descripción en la documentación oficial es:
date - formatear una hora/fecha local
gmdate - formatear una fecha/hora GMT/UTC, el resultado es Greenwich. Hora media (GMT).
Por ejemplo, la zona horaria en la que nos encontramos ahora es +8, entonces la hora devuelta por el servidor que ejecuta el siguiente script debería ser así:
Se supone que la hora actual es 2007-03-14 12:15:27
echo date( 'Ymd H:i:s ', time()); La salida es: 2007-03-14 12:15:27
echo gmdate('Ymd H:i:s', time()); -03-14 04:15:27
Pero esto es sólo el resultado de ejecutar PHP en Linux+Apache. Si se ejecuta en Windows, las dos funciones devuelven: 2007-03-14 04:15:27.
Por lo tanto, debemos proporcionar una forma de escritura compatible, usar gmdate de manera uniforme y configurar manualmente la zona horaria actual. El método de escritura se mejora de la siguiente manera:
echo gmdate('Ymd H:i:s', time() + 3600 * 8
.);
De esta manera, no importa cuál sea la situación en Linux + Los resultados correctos se obtienen tanto en Apache como en Windows. Por supuesto, hay otra ventaja al escribir de esta manera cuando el sitio web es para todo el mundo, solo para el usuario del sitio. Necesita configurar la zona horaria, y el programa calculará automáticamente la hora en función de la zona horaria establecida por el usuario. La hora de publicación de la información en la base de datos solo almacena la hora generada por la hora actual (). La zona horaria de China +8 es: 2007-03-14 12:15:27, luego los usuarios en Europa +2 zona horaria ven La hora de publicación de esta información es: 2007-03-14 06:15:27, por lo que la hora de Toda la información se corresponderá correctamente.