PHP中格式化时间函数date与gmdate的区别 | 修改PHP的默认时区
封面图
•
2025-10-23
•
PHP
208
0
0
0
在 PHP 中,`date()` 和 `gmdate()` 都是用来格式化时间的函数,但它们之间有一个关键的区别:**时区处理**。下面是它们的区别以及如何修改 PHP 的默认时区。 --- ## 一、`date()` 和 `gmdate()` 的区别 | 函数 | 是否考虑时区 | 返回时间类型 | 使用场景 | |------------|----------------|--------------------|----------------------------| | `date()` | ✅ 是 | 本地时间(根据时区) | 多数情况下使用 | | `gmdate()` | ❌ 否 | UTC 时间(世界协调时) | 需要统一时间标准时使用 | ### 示例: ```php // 设置时区为北京时间(UTC+8) date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s'); // 输出本地时间,比如 2025-04-05 10:30:00 echo gmdate('Y-m-d H:i:s'); // 输出 UTC 时间,比如 2025-04-05 02:30:00 ``` --- ## 二、修改 PHP 的默认时区 PHP 默认时区是 **UTC**,但在实际开发中通常需要设置为本地时区(如中国、美国等)。 ### 方法 1:使用 `date_default_timezone_set()` ```php date_default_timezone_set('Asia/Shanghai'); // 设置为中国时区 ``` ### 方法 2:修改 `php.ini` 文件(推荐生产环境) 找到 `php.ini` 文件,找到以下行并修改: ```ini ; date.timezone = "UTC" date.timezone = "Asia/Shanghai" ``` 保存后重启 Web 服务器(如 Apache、Nginx)使配置生效。 --- ## 三、常见时区标识符 | 时区名称 | 示例 | |---------------------|--------------------------| | Asia/Shanghai | 中国北京 | | America/New_York | 美国纽约 | | Europe/London | 英国伦敦(UTC+0) | | Australia/Sydney | 澳大利亚悉尼 | | UTC | 协调世界时 | 你可以通过查看 [PHP 官方文档](https://www.php.net/manual/en/timezones.php) 获取完整的时区列表。 --- ## 四、总结 | 项目 | 说明 | |--------------|----------------------------------------------------------------------| | `date()` | 根据当前时区返回本地时间 | | `gmdate()` | 不考虑时区,始终返回 UTC 时间 | | 修改时区 | 使用 `date_default_timezone_set()` 或修改 `php.ini` 文件 | --- 如果你有具体的应用场景(比如生成日志、显示用户时间等),我可以帮你进一步优化代码。
上一篇:
php CURL抓取网页内容
下一篇:
命令行执行php出现PHP Fatal error Class Redis not found in
标题录入,一次不能超过6条
留言
评论