date_default_timezone_get() 在 php 8.2 中直接返回当前默认时区名称,优先级为:date_default_timezone_set() 设置值 > php.ini 的 date.timezone 配置 > 默认 "utc";不探测系统时区,也不抛警告。

date_default_timezone_get() 在 PHP 8.2 中直接返回当前脚本默认时区的名称(如 "Asia/Shanghai" 或 "UTC"),无需额外参数,但它的结果取决于时区是否已被显式设置或由系统/配置决定。
时区来源决定返回值
该函数不“探测”系统本地时间,而是读取 PHP 内部当前生效的默认时区设置,优先级如下:
- 调用过
date_default_timezone_set($tz)→ 返回该值 - 未手动设置,但
php.ini中配置了date.timezone = "Asia/Shanghai"→ 返回该配置值 - 两者都未设置 → 返回
"UTC"(PHP 8.2 的行为,与早期版本一致)
实际使用示例
在 PHP 8.2 脚本中可直接调用:
$tz = date_default_timezone_get(); echo $tz; // 输出类似 "Asia/Shanghai" 或 "UTC"
注意:它不会抛出警告,即使时区未设置,也不会自动 fallback 到系统时区(如 Linux 的 /etc/localtime)。
验证是否已正确设置时区
仅靠 date_default_timezone_get() 返回值不能说明时区“有效”,建议配合检查:
- 用
in_array($tz, timezone_identifiers_list())确认时区名合法 - 用
date('T e')查看当前格式化输出中的时区缩写和名称,辅助验证效果 - 若返回
"UTC"但预期是北京时间,说明未设置或配置缺失,需检查php.ini或加date_default_timezone_set('Asia/Shanghai');
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











