You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决PHP中date_default_timezone_set()返回时间错误的问题?

解决PHP时区设置后时间错误的排查方案
  • 先验证时区是否真的生效:在你的代码里添加一行 echo date_default_timezone_get();,确认输出是 Africa/Algiers——如果不是,说明你的时区设置被其他代码或配置覆盖了。
  • 检查服务器系统时间:PHP的date()函数依赖系统底层时间,若系统本身时间不准,哪怕时区设置正确,输出也会出错。
    • Linux/macOS终端执行 date 查看系统时间
    • Windows命令行执行 time /t 查看当前时间
  • 确认PHP支持该时区标识符:运行 print_r(DateTimeZone::listIdentifiers(DateTimeZone::AFRICA));,输出所有非洲时区列表,检查是否包含Africa/Algiers。部分旧PHP版本可能不支持部分时区标识符。
  • 换用DateTime类测试:用面向对象的方式尝试输出时间,排除原生函数的干扰:
$tz = new DateTimeZone('Africa/Algiers');
$dt = new DateTime('now', $tz);
echo $dt->format('m/d/y g:i A');

如果这段代码输出正确,说明你的脚本里可能有其他地方在重置时区。

  • 排查代码中的时区重置:检查是否有其他函数、框架扩展在你设置时区后,又调用了date_default_timezone_set修改时区。

内容的提问来源于stack exchange,提问作者Amine Babaali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 22:15:54