PHP时区需在php.ini中设date.timezone="Asia/Shanghai"并重启服务,或用date_default_timezone_set("Asia/Shanghai")临时设置,严禁使用GMT+8等非法值。
php
Env 是 Windows 下常见的集成环境(类似 XAMPP、WAMP),它默认不显式设置
,导致
、
等函数抛 Warning 或返回错误时间——这不是代码写错了,是环境没配好。
确认你用的是哪个 php.ini
phpEnv 通常有多个 PHP 版本共存,每个版本对应独立的配置文件。别直接改错位置:
新建一个
,内容为
,浏览器访问后找
Loaded Configuration File
这一行,路径类似
注意:phpEnv 的
一般在
下,不是
根目录
如果显示 “no value”,说明没加载到任何
,需检查 phpEnv 面板里是否启用了该 PHP 版本,或手动指定配置路径
修改 date.timezone 必须取消注释并填 IANA 时区名
打开上一步确认的
,搜索
:
找到这行:
(前面有分号,是注释状态)
删掉分号,改成:
(必须用双引号,且值必须是 IANA 时区名)
严禁写成:
、
、
—— PHP 会静默忽略,等同于没设
PHP 8.5 起,空值或非法值会导致
,且
可能返回
改完必须重启 phpEnv 的 Web 服务,不是“重载”
phpEnv 面板里点「重启 Apache」或「重启 Nginx」按钮,本质是杀进程再拉起:
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
仅点「重载配置」或刷新页面无效——
或模块进程不会重新读取
如果用的是 Apache 模块模式,重启 Apache 即可;如果用的是 Nginx + php-fpm,则需同时重启 Nginx 和 php-fpm 进程(phpEnv 面板通常提供一键操作)
验证是否生效:在
页面搜索
,看右侧值是否为
;再执行
,看输出是否符合本地当前时间
最容易被忽略的是:phpEnv 多版本共存时,你改了 A 版本的
,但项目实际跑在 B 版本上——务必以
显示的
Loaded Configuration File
为准,而不是凭印象去改。
date.timezonedate()new DateTime()info.phpC:/phpEnv/php/php-8.3.0/etc/php.iniphp.iniphp/{版本号}/etc/php/{版本号}/php.iniphp.inidate.timezone;date.timezone =date.timezone = "Asia/Shanghai"date.timezone = GMT+8date.timezone = CSTdate.timezone = ChinaWarning: date(): It is not safe to rely on the system's timezone settingsnew DateTime()falsephp-fpmphp.iniinfo.phpdate.timezoneAsia/Shanghaiecho date('Y-m-d H:i:s');php.iniphpinfo()