在 PHP 中,“日志时间如何调整”常见有几种含义,下面按最常用场景给你说明,你可以对照自己的情况选择。
PHP 的错误日志时间 取决于 php.ini 中的时区设置。
phpinfo();
在 php.ini 中设置:
date.timezone = "Asia/Shanghai"
或在代码中设置:
date_default_timezone_set('Asia/Shanghai');
✅ 修改后,PHP 错误日志时间会随之变化。
date() 生成日志时间$time = date('Y-m-d H:i:s');
error_log("[$time] 这是一条日志\n", 3, '/tmp/test.log');
DateTime(更规范)$dt = new DateTime();
$dt->setTimezone(new DateTimeZone('Asia/Shanghai'));
$time = $dt->format('Y-m-d H:i:s.u'); // 含微秒
Nginx 使用 系统时间,不能直接改时区,只能:
timedatectl set-timezone Asia/Shanghai
PHP-FPM 慢日志时间也依赖 php.ini 时区:
date.timezone = Asia/Shanghai
date.timezone = Asia/Shanghai
$time = date('Y-m-d H:i:s', time() + 8 * 3600);
PHP 日志时间比本地慢 8 小时
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
php.ini 是否设置 date.timezonephp.ini(CLI / FPM 不同)date_default_timezone_set('Asia/Shanghai');
$log = sprintf(
"[%s] 错误日志\n",
date('Y-m-d H:i:s')
);
error_log($log, 3, '/tmp/app.log');
如果你能具体说明:
我可以给你更精确的配置方案。