跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

phpEnv如何修改PHP日期时间戳 phpEnv date.timezone配置

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

相关文章