直接调用phpinfo()可查看date.timezone的Local Value和Master Value,但需结合date_default_timezone_get()及date()输出的T/e/P三者一致才能确认时区真实生效,且须注意服务重启、脚本覆盖和tzdata缺失等干扰因素。

直接在PHP脚本中调用 phpinfo(),页面加载后搜索 date.timezone 项,就能看到当前PHP运行时实际生效的默认时区。
具体操作步骤
创建一个临时PHP文件(例如 tz.php),内容如下:
将该文件放到Web服务器可访问目录(如Nginx/Apache的根目录),然后通过浏览器访问 http://your-domain/tz.php。
在打开的页面中按 Ctrl+F(Windows/Linux)或 Cmd+F(macOS),输入 date.timezone,定位到这一行:
立即学习“PHP免费学习笔记(深入)”;
- 若显示 date.timezone => Asia/Shanghai,说明已成功配置为中国标准时间;
- 若显示 date.timezone => no value 或为空,表示未设置,默认可能 fallback 到 UTC 或触发警告;
- 注意查看其右侧的 Local Value 和 Master Value:前者是当前上下文实际生效值(如来自 .htaccess 或 ini_set),后者是 php.ini 的原始配置值。
为什么光看 phpinfo() 不够?
phpinfo() 显示的是配置来源和设定值,但不验证时区是否真正生效。建议搭配以下代码进一步确认:
";
echo "当前时间(含时区信息):" . date('Y-m-d H:i:s T e P') . "
";
?>
输出中 T(如 CST)、e(如 Asia/Shanghai)、P(如 +08:00)三者一致,才表明时区设置真实有效。
常见干扰情况
- 修改了 php.ini 但没重启 PHP-FPM 或 Web 服务 →
phpinfo()中 Local Value 仍为旧值或空; - 脚本开头用了
date_default_timezone_set()→phpinfo()的 Local Value 会显示该值,但 Master Value 仍是 php.ini 原始配置; - 容器环境(如 Alpine)缺少 tzdata 包 → 即使设了 Asia/Shanghai,
date('T')可能仍输出 UTC,需检查系统时区数据完整性。



















