本文目录导读:

- 修改
php.ini配置文件(全局生效) - 在代码中动态设置(推荐,单个脚本生效)
- 在
.htaccess文件中设置(Apache 专用) - 在
nginx + PHP-FPM中设置 - 如何检查当前时区
- 时区列表获取
- 最佳实践建议
在 PHP 中设置时区,主要有以下 4 种方法,按优先级从低到高排列(高优先级会覆盖低优先级):
修改 php.ini 配置文件(全局生效)
找到 php.ini 文件,搜索 date.timezone:
date.timezone = Asia/Shanghai
常见时区:
- 中国:
Asia/Shanghai或Asia/Chongqing - 台湾:
Asia/Taipei - 香港:
Asia/Hong_Kong - 新加坡:
Asia/Singapore - 日本:
Asia/Tokyo - 美国东部:
America/New_York
修改后需要重启 Web 服务器(Apache/Nginx)或 PHP-FPM 生效。
在代码中动态设置(推荐,单个脚本生效)
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s'); // 输出北京时间
特点:
- 仅对当前脚本及后续代码生效
- 适合不同用户或不同请求需要不同时区的情况
- 不需要服务器权限
在 .htaccess 文件中设置(Apache 专用)
php_value date.timezone "Asia/Shanghai"
注意: 需要服务器开启了 AllowOverride Options 且 PHP 以 Apache 模块运行。
在 nginx + PHP-FPM 中设置
在 php-fpm.conf 或 /etc/php/8.x/fpm/pool.d/www.conf 中添加:
php_admin_value[date.timezone] = Asia/Shanghai
然后重启 PHP-FPM:
sudo systemctl restart php8.1-fpm
如何检查当前时区
echo date_default_timezone_get(); // 输出当前时区
时区列表获取
查看所有可用时区:
php -r "print_r(timezone_identifiers_list());"
或在 PHP 中输出:
print_r(DateTimeZone::listIdentifiers());
最佳实践建议
- 开发环境: 在
php.ini统一设置 - 生产环境: 如果项目有国际化需求(不同用户时区不同),在每个请求入口(如 index.php)用
date_default_timezone_set()按用户设置 - 框架项目: 大多数框架(Laravel、ThinkPHP 等)都有配置文件可以设置时区,优先使用框架的配置方式
示例(Laravel):
// config/app.php 'timezone' => 'Asia/Shanghai',
只要选择一种适合自己的方式设置一次,后续的 date()、DateTime 类等就会自动使用正确的时区。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播