`
chengxianju
  • 浏览: 257881 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

PHP5的php.ini时区设置问题

阅读更多
世界协调时间(Universal Time Coordinated,UTC)
GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可


 格林尼治标准时间(GMT,旧译“格林威治平均时间”或“格林威治标准时间”)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
  理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。
  地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。现在的标准时间——协调世界时(UTC)——由原子钟提供。

UTC = Coordinated Universal Time. 中文名称为协调世界时.

GMT = Greenwich Mean Time. 中文名称为格林尼治(平)时(这里的"w"是不发音的,而且"Green"要读成"Gren")

UTC = GMT +/- 0.9 s
因此 UTC 间中需要进行 "闰秒" 以控制两者相差。


从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。
1、最简单的方法就是不要用php5.1以上的版本;
2、如果要用5.1以上版本,而且不修改php.ini,则需要在关于时间的初始化的语句的上面加上date_default_timezone_set (XXX),或者使用date('Y-m-d G:i:T', strtotime('+8HOUR') )来获取日期时间;
3,一劳永逸,仅限能修改php.ini。打开php.ini把date.timezone前面的分号去掉,在=后面加XXX,重启http服务(如apache2或iis等)即可。
关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi(依次为重庆,上海,乌鲁木齐),港台地区可用:Asia/Maca* ,Asia/Hong_Kong ,Asia/Taipei(依次为澳门,香港,台北),还有新加坡:Asia/Singapore,以上没有北京,不过接着往下看,其他可用的值是:Etc/GMT-8,Singapore ,Hongkong,PRC。PRC是什么?PRC是中华人民共和国啊!(这个就是北京时间吧)以上都是php官方说明档里整理出来的GMT-8下面的地区,可能会有遗漏,如有需要再上官方文档里查看一下比较好

如此一来,按照默认的时间便为GMT时间。而我们一般是使用北京时间,可以设置为:date.timezone = PRC或date.timezone = Asia/Shanghai。即:

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Shanghai

记得不要设置为"Asia/Beijing",老外好象对上海感兴趣点,呵呵。

如果没有权限改php.ini,可以用函数date_default_timezone_set('PRC');或date_default_timezone_set('Asia/Shanghai');


php5.1x的时区问题导致相差八个小时!收藏
从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们中国的用户会差八个小时的问题!
相关设置是修改php.ini中的 date.timezone 参数:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =

默认是关闭的,只需把注释去掉,改为即可
[Date]
; Defines the default timezone used by the date functions
date.timezone = PRC

其中PRC是“中华人民共和国”!
其他选项可以参考php手册。
不过这上面的亚洲地区漏掉了我们的首都北京,不知道老外是不是故意的!

如果没有修改php.ini的权限,只需要在调用时间日期函数的时候,调用 date_default_timezone_set(’PRC’) 即可!
也可以调用date_default_timezone_get()来查看当前的时区设置!

關於XXX,大陸內地可用的值是:
Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)
港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,台北)
台灣地区可設為:date.timezone = "Asia//Taipei"
還有新加坡:Asia/Singapore

分享到:
评论

相关推荐

    适用于 php-5.2 的 php.ini 中文版

    `php.ini` 文件是 PHP 配置的核心文件,它定义了 PHP 在运行时的各种行为设置与功能开关。对于不同的 PHP 版本,其 `php.ini` 文件中的配置项会有所不同。在 PHP 5.2 版本中,`php.ini` 包含了一系列重要的配置选项...

    PHP.ini研究 php.ini中文版

    对于中文环境的开发者,php.ini中的`charset`配置项用于设置默认字符集,通常设置为`UTF-8`以兼容多语言环境。而`mbstring.internal_encoding`则影响多字节字符串处理。 最后,理解php.ini文件的加载过程也非常重要...

    php.ini中文版

    5. 区域设置:date.timezone 设置了服务器的时区,这对于处理日期和时间相关功能非常重要,确保系统时间和服务器时区一致。 6. 扩展模块:php.ini 中的 extension=xxx.so(在Windows上为.dll)用于启用或禁用PHP...

    php.ini(中文版)

    `php.ini`是PHP配置的核心文件,用于设置PHP的运行环境参数。此文件控制了PHP如何处理数据、与服务器的交互方式以及安全设置等多方面内容。`php.ini`中的设置可以被细分为多个部分,每个部分针对不同的功能领域进行...

    php.ini 简体中文版

    - **date.timezone**: 设置默认的时区,这对于正确处理日期和时间非常重要,尤其是在涉及跨时区操作时。 ##### 内存管理 - **post_max_size**: 设置POST请求数据的最大大小,包括文件上传和表单数据。这个值应该略...

    httpd.conf &php.ini

    5. **date.timezone**: 设置默认时区,确保日期时间的正确处理。 6. **extension_dir**: 指定PHP扩展模块的路径,加载所需的扩展如mysqli、gd等以增强功能。 7. **max_execution_time**: 设定脚本的最大执行时间,...

    php配置文件php.ini的中文注释版.rar

    `date.timezone`设置服务器的时区,确保日期和时间的正确显示。`short_open_tag`则决定是否支持PHP短标签()。 下载说明中可能会提到如何正确解压和替换现有的php.ini文件,以及在不同操作系统或服务器环境下可能...

    最完整PHP.INI中文版

    - `date.timezone`:设置默认时区,未设置时根据系统或用户设置确定,推荐使用“PRC”(中国标准时间)。 ##### [PHP-Core-Assert] - `assert.active`:启用断言功能,默认为开启状态。 - `assert.bail`:遇到断言...

    建站过程中php.ini及config.inc.php

    在构建网站的过程中,`php.ini` 和 `config.inc.php` 是两个至关重要的配置文件,它们分别负责管理和调整PHP运行环境的参数以及数据库连接设置。理解并掌握这两个文件的使用是确保网站正常运行和优化性能的基础。 `...

    php.ini中文解释.doc

    随着PHP版本的更新,php.ini的设置也会有所变化,因此在升级或初次使用新版本的PHP时,理解并熟悉php.ini的各项配置至关重要。 ### 1. 文件位置与命名 PHP在启动时会尝试加载名为`php.ini`的配置文件,其查找顺序为...

    php.ini中文注释版.doc

    `memory_limit`设定脚本可以使用的最大内存,`upload_max_filesize`定义允许上传文件的最大大小,`session.save_path`指定session数据的存储路径,`date.timezone`设置服务器时区等。 总的来说,理解和掌握php.ini...

    php.ini中文详解

    - **文件命名与位置**:`php.ini` 必须按照此名称保存,并且放在由 Apache 配置文件 `httpd.conf` 中指定的目录下(通过 PHPINIDir 指令设置)。 - **文件来源**:可以通过以下两个链接下载推荐的或默认版本的 `...

    php.ini中文版-第一团购网.pdf

    随着PHP版本的更新,`php.ini` 中的设置也会有所变化,因此,了解并适时调整`php.ini`对于优化代码性能和解决兼容性问题至关重要。 ### 1. 文件位置和命名 `php.ini` 必须命名为“php.ini”,PHP会在启动时尝试从...

    PHP.ini配置中文解释

    - `date.timezone`: 设置默认时区,如果未指定,则使用系统默认时区。 #### [PHP-Core-Assert] 断言相关配置: - `assert.active=On`: 是否启用断言功能。 - `assert.bail=Off`: 当断言失败时是否停止后续脚本...

    php.ini-helper-doc.rar_doc

    这份`php.ini中文解释.doc`文档详细解析了`php.ini`中的各项设置,为开发者提供了宝贵的参考资源。 一、`php.ini`概述 `php.ini`是PHP的配置文件,用于设置PHP运行时的环境参数。当你安装PHP后,默认会有一个`...

    php.ini中文说明

    `php.ini` 是PHP解释器的核心配置文件,它定义了PHP运行时的各种参数,控制着PHP的环境设置。这份中文说明针对的是PHP5版本,对于那些英语阅读能力有限或者初次接触PHP配置的人来说,是一份非常实用的参考资料。 1....

    php.ini中date.timezone设置详解

    在PHP 5.1.0版本及以后,这个选项被引入,目的是为了让开发者能够更精确地控制时间的显示,避免由于不正确的时区设置导致的时间差异问题。默认情况下,如果未设置 `date.timezone`,PHP会使用UTC(协调世界时)作为...

    php.ini的中文解释

    当PHP作为Apache模块运行时,`httpd.conf`文件中的某些指令可以覆盖`php.ini`文件中的设置。这种交互通过以下两种方式实现: 1. **`php_value`指令**:用于修改布尔类型的指令,当值为`none`时会保留原设置。 2. **...

    ecshop中ini.php分析

    这个设置有助于避免因时区设置不当而造成的日期时间显示错误。 在获取当前文件名的部分,代码使用$_SERVER全局数组中的'PHP_SELF'来获取不包含GET请求部分的脚本名称,同时,如果当前访问是目录,则自动添加index....

Global site tag (gtag.js) - Google Analytics