0

0

php时区怎样更改修改_php时区更改修改方法【校准】

蓮花仙者

蓮花仙者

发布时间:2026-02-09 13:23:02

|

954人浏览过

|

来源于php中文网

原创

PHP时区需通过设置IANA时区标识符(如Asia/Shanghai)解决,而非校准;最彻底方式是修改php.ini中date.timezone并重启服务,次选运行时调用date_default_timezone_set(),新代码推荐DateTime构造时指定时区。

php时区怎样更改修改_php时区更改修改方法【校准】

PHP 时区不是靠“校准”解决的,而是通过明确设置时区标识符(如 Asia/Shanghai)来避免时间偏差。默认时区为 UTC 或系统本地时区,若未显式配置,date()strtotime()DateTime 等函数会出错或返回错误时间。

修改 php.ini 中的 date.timezone 配置

这是最彻底、全局生效的方式,适用于所有 PHP 脚本和 CLI 环境。

  • 找到正在使用的 php.ini 文件(运行 php --iniphpinfo() 查看 “Loaded Configuration File”)
  • 取消注释并修改 date.timezone 行,例如:
    date.timezone = "Asia/Shanghai"
  • 注意:必须使用 IANA 时区名(如 Asia/Shanghai),不能写 GMT+8PRC —— 后者已废弃且不被识别
  • 改完后需重启 Web 服务器(如 Apache/Nginx)或 PHP-FPM 进程,否则不生效

运行时用 date_default_timezone_set() 设置

适合无法修改 php.ini 的场景(如共享主机),或需要在单个脚本中临时切换时区。

  • 必须在调用任何日期函数前执行,否则会触发警告:It is not safe to rely on the system's timezone settings
  • 示例:
    date_default_timezone_set("Asia/Shanghai"); echo date('Y-m-d H:i:s');
  • 该设置只对当前请求/脚本生命周期有效,不影响其他请求或 CLI 子进程
  • 如果项目混合使用 date()DateTime,此方式同样生效 —— 它是 PHP 内部默认时区的统一入口

DateTime 构造时指定时区(推荐用于新代码)

比全局设置更精确,避免时区污染,尤其适合处理多时区业务(如订单创建地、用户所在地、服务器日志时间)。

蚂蚁PPT
蚂蚁PPT

AI在线智能生成PPT

下载

立即学习PHP免费学习笔记(深入)”;

  • 不依赖全局时区,每个对象独立携带时区信息:
    $dt = new DateTime('now', new DateTimeZone('Asia/Shanghai'));
  • 可安全转换:
    $utc = $dt->setTimezone(new DateTimeZone('UTC'));
  • 数据库存取时建议统一用 UTC,展示时再转目标时区 —— 避免夏令时、历史时区变更导致的歧义
  • 注意:new DateTime() 不传 DateTimeZone 时,会 fallback 到 date_default_timezone_get() 返回的值

验证时区是否生效及常见陷阱

光改配置不验证,等于没改。很多问题其实出在“以为改了,其实没生效”。

  • 检查当前生效时区:
    echo date_default_timezone_get(); // 应输出 Asia/Shanghai
  • 确认 phpinfo() 页面中 “date.timezone” 行显示的是你设的值,且状态为 “Local Value” 和 “Master Value” 一致
  • CLI 和 Web 的 php.ini 可能不同:用 php -i | grep timezone 查 CLI,用 phpinfo() 查 Web
  • Docker 环境中,PHP 容器内时区 ≠ 宿主机时区,需在 Dockerfile 或 docker-compose.yml 中同时设置 TZ=Asia/Shanghai 并挂载 /etc/localtime,否则 date() 可能仍返回 UTC 时间

真正麻烦的不是改哪一行,而是 PHP 有至少 4 个地方可以设时区(php.ini、.htaccess、ini_set()、date_default_timezone_set()),优先级不同,还可能互相覆盖。线上出问题时,先查 date_default_timezone_get() 返回什么,再逆向排查哪里被覆盖了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

235

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

512

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

543

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

237

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

430

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3585

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

43

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

60

2026.01.13

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

130

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 11.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号