<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[PHP5的php.ini时区设置问题]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Fri, 26 Mar 2010 08:44:51 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	世界协调时间(Universal Time Coordinated,UTC) <br/>GPS 系统中有两种时间区分，一为UTC，另一为LT（地方时）两者的区别为时区不同，UTC就是0时区的时间，地方时为本地时间，如北京为早上八点（东八区），UTC时间就为零点，时间比北京时晚八小时，以此计算即可 <br/><br/><br/>　格林尼治标准时间（GMT，旧译“格林威治平均时间”或“格林威治标准时间”）是指位于伦敦郊区的皇家格林尼治天文台的标准时间，因为本初子午线被定义在通过那里的经线。 <br/>　　理论上来说，格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时（也就是在格林尼治上空最高点时）的时间。由于地球在它的椭圆轨道里的运动速度不均匀，这个时刻可能和实际的太阳时相差16分钟。 <br/>　　地球每天的自转是有些不规则的，而且正在缓慢减速。所以，格林尼治时间已经不再被作为标准时间使用。现在的标准时间——协调世界时（UTC）——由原子钟提供。 <br/><br/>UTC = Coordinated Universal Time. 中文名称为协调世界时. <br/><br/>GMT = Greenwich Mean Time. 中文名称为格林尼治（平）时（这里的"w"是不发音的，而且"Green"要读成"Gren"） <br/><br/>UTC = GMT +/- 0.9 s <br/>因此 UTC 间中需要进行 "闰秒" 以控制两者相差。 <br/><br/>从php5.1.0开始，php.ini里加入了date.timezone这个选项，默认情况下是关闭的，也就是显示的时间（无论用什么php命令）都是格林威治标准时间，和我们的时间（北京时间）差了正好8个小时，有以下3中方法可以恢复正常的时间。 <br/>1、最简单的方法就是不要用php5.1以上的版本； <br/>2、如果要用5.1以上版本，而且不修改php.ini，则需要在关于时间的初始化的语句的上面加上date_default_timezone_set (XXX)，或者使用date('Y-m-d G:i:T', strtotime('+8HOUR') )来获取日期时间； <br/>3，一劳永逸，仅限能修改php.ini。打开php.ini把date.timezone前面的分号去掉，在=后面加XXX，重启http服务（如apache2或iis等）即可。 <br/>关于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下面的地区，可能会有遗漏，如有需要再上官方文档里查看一下比较好 <br/><br/>如此一来，按照默认的时间便为GMT时间。而我们一般是使用北京时间，可以设置为：date.timezone = PRC或date.timezone = Asia/Shanghai。即： <br/><br/>[Date] <br/>; Defines the default timezone used by the date functions <br/>date.timezone = Asia/Shanghai <br/><br/>记得不要设置为"Asia/Beijing"，老外好象对上海感兴趣点，呵呵。 <br/><br/>如果没有权限改php.ini，可以用函数date_default_timezone_set('PRC');或date_default_timezone_set('Asia/Shanghai'); <br/><br/><br/>php5.1x的时区问题导致相差八个小时！收藏 <br/>从php5.10开始，php中加入了时区的设置，在php中显示的时间都是格林威治标准时间，这就造成了我们中国的用户会差八个小时的问题！ <br/>相关设置是修改php.ini中的 date.timezone 参数： <br/>[Date] <br/>; Defines the default timezone used by the date functions <br/>;date.timezone = <br/><br/>默认是关闭的，只需把注释去掉，改为即可 <br/>[Date] <br/>; Defines the default timezone used by the date functions <br/>date.timezone = PRC <br/><br/>其中PRC是“中华人民共和国”！ <br/>其他选项可以参考php手册。 <br/>不过这上面的亚洲地区漏掉了我们的首都北京，不知道老外是不是故意的！ <br/><br/>如果没有修改php.ini的权限，只需要在调用时间日期函数的时候，调用 date_default_timezone_set(’PRC’) 即可！ <br/>也可以调用date_default_timezone_get()来查看当前的时区设置！ <br/><br/>關於XXX，大陸內地可用的值是： <br/>Asia/Chongqing ，Asia/Shanghai ，Asia/Urumqi （依次為重慶，上海，烏魯木齊) <br/>港台地區可用：Asia/Macao ，Asia/Hong_Kong ，Asia/Taipei （依次為澳門，香港，台北） <br/>台灣地区可設為：date.timezone = "Asia//Taipei" <br/>還有新加坡：Asia/Singapore <br/><br/>Tags - <a href="http://www.dzhope.com/tags/php/" rel="tag">php</a> , <a href="http://www.dzhope.com/tags/php.ini/" rel="tag">php.ini</a> , <a href="http://www.dzhope.com/tags/%25E6%2597%25B6%25E5%258C%25BA/" rel="tag">时区</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP5的php.ini时区设置问题]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>