温馨提示×

PHP日志时间如何调整

小樊
42
2026-08-19 05:08:00
栏目: 编程语言

在 PHP 中,“日志时间如何调整”常见有几种含义,下面按最常用场景给你说明,你可以对照自己的情况选择。


一、调整 PHP 错误日志的时间(error_log)

1️⃣ PHP 错误日志默认使用服务器时间

PHP 的错误日志时间 取决于 php.ini 中的时区设置

查看当前时区

phpinfo();

设置时区(推荐)

php.ini 中设置:

date.timezone = "Asia/Shanghai"

或在代码中设置:

date_default_timezone_set('Asia/Shanghai');

✅ 修改后,PHP 错误日志时间会随之变化。


二、调整自定义日志的时间格式

1️⃣ 使用 date() 生成日志时间

$time = date('Y-m-d H:i:s');
error_log("[$time] 这是一条日志\n", 3, '/tmp/test.log');

2️⃣ 使用 DateTime(更规范)

$dt = new DateTime();
$dt->setTimezone(new DateTimeZone('Asia/Shanghai'));
$time = $dt->format('Y-m-d H:i:s.u'); // 含微秒

三、修改 Nginx / PHP-FPM 日志时间

✅ Nginx 日志时间

Nginx 使用 系统时间,不能直接改时区,只能:

timedatectl set-timezone Asia/Shanghai

✅ PHP-FPM 慢日志时间

PHP-FPM 慢日志时间也依赖 php.ini 时区:

date.timezone = Asia/Shanghai

四、调整日志时间偏移(如 +8 小时)

方法 1:直接改时区(推荐)

date.timezone = Asia/Shanghai

方法 2:手动偏移(不推荐)

$time = date('Y-m-d H:i:s', time() + 8 * 3600);

五、Docker / 容器环境常见问题

问题

PHP 日志时间比本地慢 8 小时

解决

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime

六、常见排查清单 ✅

  • [ ] php.ini 是否设置 date.timezone
  • [ ] 是否修改了正确的 php.ini(CLI / FPM 不同)
  • [ ] 是否重启 PHP-FPM / Apache
  • [ ] 系统时间是否正确

七、快速示例(完整)

date_default_timezone_set('Asia/Shanghai');

$log = sprintf(
    "[%s] 错误日志\n",
    date('Y-m-d H:i:s')
);

error_log($log, 3, '/tmp/app.log');

如果你能具体说明:

  • ✅ 是 PHP 错误日志 / 自定义日志 / Laravel / ThinkPHP / Docker
  • ✅ 想改的是 时区 / 格式 / 偏移

我可以给你更精确的配置方案

0