phpinfo() 不直接显示当前时区,但可通过“default timezone”行获知实际生效值,并结合“loaded configuration file”及“additional .ini files parsed”定位配置来源;需用date_default_timezone_get()验证是否被运行时修改,且注意cli与web环境配置分离。

在 PHP 8.2 中,phpinfo() 本身**不会直接显示当前生效的时区设置**,但它能帮你定位到时区配置的来源和实际值。关键在于理解 PHP 时区的优先级和 phpinfo() 的输出结构。
查看 phpinfo() 中与时区相关的两个关键位置
phpinfo() 页面中需重点关注以下两处:
-
Date 标题下的 “Default timezone” 行:这是 PHP 运行时实际采用的默认时区(如
Asia/Shanghai),由date.timezone配置项决定,且已按优先级生效。 -
“Loaded Configuration File” 行下方的 “Additional .ini files parsed” 列表:列出所有被加载的配置文件(如
/etc/php/8.2/apache2/conf.d/99-timezone.ini),可据此找到date.timezone的真实定义位置。
确认时区是否真正生效(避免被脚本覆盖)
phpinfo() 显示的是 PHP 启动时读取的配置,但时区可能被运行时函数修改。因此:
- 若页面中 “Default timezone” 显示为空或
UTC,说明date.timezone未在php.ini或扩展 ini 文件中显式设置。 - 即使
phpinfo()显示了时区,也建议在同个脚本中加一行代码验证:<?php echo date_default_timezone_get(); ?>—— 输出结果应与 phpinfo() 中 “Default timezone” 一致。
快速定位配置文件并检查 date.timezone
根据 phpinfo() 显示的 “Loaded Configuration File” 路径(如 /etc/php/8.2/cli/php.ini),用命令行检查:
- Linux/macOS:
grep "date.timezone" /etc/php/8.2/cli/php.ini
若无结果,再查附加配置:grep -r "date.timezone" /etc/php/8.2/cli/conf.d/ - Windows:
在 php.ini 或 conf.d 目录下的 .ini 文件中搜索date.timezone =。
注意 CLI 与 Web SAPI 的配置可能不同
Apache、Nginx(FPM)、CLI 各自使用不同的 php.ini。运行 phpinfo() 的方式决定你看到的是哪套配置:
- 通过浏览器访问
info.php→ 查看 Web 服务器(如 Apache/FPM)的配置。 - 终端执行
php -i | grep timezone→ 查看 CLI 模式的配置。 - 两者时区可能不一致,务必确认你调试的是目标环境。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











