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

PHP date("H:i")返回无效时分问题求助(Windows Server环境)

解决PHP date("H:i") 返回时间与系统时间不符的问题

针对你遇到的Asia/Tehran时区下PHP时间比系统时间快1小时的问题,可按以下步骤排查解决:

  • 检查timezonedb扩展版本
    运行phpinfo()查看timezonedb的版本号。伊朗的夏令时规则曾多次调整,旧版本的时区数据库可能未同步最新规则。PHP 5.6需要安装至少2020.3及以后版本的timezonedb扩展,才能正确处理Asia/Tehran的时区偏移。

  • 确认PHP加载了timezonedb扩展
    打开php.ini文件,确保已启用extension=timezonedb.dll(Windows环境下),同时设置date.timezone=Asia/Tehran,保存后重启IIS或PHP-FPM服务。避免PHP fallback到系统自带的旧时区数据。

  • 验证Windows系统时区设置
    打开命令提示符运行tzutil /l,找到系统中对应的伊朗时区名称(通常为Iran Standard Time),确认其与PHP的Asia/Tehran时区映射正确。若系统时区选择错误,会导致PHP时间计算偏差。

  • 排查时间戳一致性
    执行echo time();获取当前时间戳,将该时间戳转换为UTC时间,再手动计算Asia/Tehran的本地时间:

    • 如果UTC时间正确,但转换后的本地时间差1小时,说明时区数据存在问题;
    • 如果UTC时间本身就与实际UTC时间差1小时,需检查Windows系统的时间同步设置,确保系统时间(含UTC偏移)准确。
  • 临时应急方案
    若需快速修复,可临时在时间戳上减去3600秒:

    echo date("H:i", time() - 3600);
    

    但此方法仅为临时 workaround,建议优先解决时区数据的根本问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:33:21