В PHP есть две функции форматирования времени: date() и gmdate(). В официальной документации описано следующее:
date — форматирует местное время/дату
gmdate — форматирует дату/время по Гринвичу/UTC, возвращается значение по Гринвичу. Среднее время (GMT).
Например, часовой пояс, в котором мы сейчас находимся, равен +8, тогда время, возвращаемое сервером, выполняющим следующий скрипт, должно быть таким:
Предполагается, что текущее время равно 14 марта 2007 г. 12:15:27
echo date( 'Ymd H:i:s', time()); Выходные данные: 2007-03-14 12:15:27
echo gmdate('Ymd H:i:s', time()); Выходные данные: 2007. -03-14 04:15:27
Но это только результат запуска PHP под Linux+Apache. Если он запущен под Windows, две функции возвращают: 2007-03-14 04:15:27.
Поэтому мы должны предоставить совместимый способ записи, единообразно использовать gmdate и вручную установить текущий часовой пояс. Метод записи улучшен следующим образом:
echo gmdate('Ymd H:i:s', time() + 3600 * 8. );
Таким образом, независимо от ситуации в Linux + Правильные результаты получаются как в Apache, так и в Windows. Конечно, у такого способа записи есть еще одно преимущество, когда веб-сайт предназначен только для пользователей веб-сайта. необходимо установить часовой пояс, и программа автоматически рассчитает время на основе часового пояса, установленного пользователем. Время выпуска информации в базе данных сохраняет только время, сгенерированное текущим временем(). Затем время выпуска видно в. Часовой пояс Китая +8: 2007-03-14 12:15:27, затем пользователи в Европе +2 часовой пояс см. Время выпуска этой информации: 2007-03-14 06:15:27, поэтому время вся информация будет соответствовать правильно.