﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>盛飞在线 &#187; 本地时间</title>
	<atom:link href="http://www.senfe.com/archives/tag/%e6%9c%ac%e5%9c%b0%e6%97%b6%e9%97%b4/feed" rel="self" type="application/rss+xml" />
	<link>http://www.senfe.com</link>
	<description>淡泊以明志，宁静而致远。</description>
	<lastBuildDate>Sat, 28 Jan 2012 13:40:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[转]php时区相关问题</title>
		<link>http://www.senfe.com/archives/383.html</link>
		<comments>http://www.senfe.com/archives/383.html#comments</comments>
		<pubDate>Tue, 28 Jul 2009 01:55:03 +0000</pubDate>
		<dc:creator>盛飞</dc:creator>
				<category><![CDATA[织网]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[date_default_timezone_set]]></category>
		<category><![CDATA[GMT]]></category>
		<category><![CDATA[UTC]]></category>
		<category><![CDATA[世界协调时间]]></category>
		<category><![CDATA[当前时间]]></category>
		<category><![CDATA[时区]]></category>
		<category><![CDATA[时差]]></category>
		<category><![CDATA[本地时间]]></category>
		<category><![CDATA[格林威治标准时间]]></category>

		<guid isPermaLink="false">http://www.senfe.com/?p=383</guid>
		<description><![CDATA[之前有一个遗留问题，就是echo date(“y-m-d h:i:s”,time())回来的时间总是与实际时间对不上，今天终于在网上找到了原因和解决方法，分享如下： 我补充一点，我按照下面提示的方法修改php.ini找不到date.timezone 这行，是不是就没办法了呢，当然不是啦，哈哈没有的话就自己加嘛，自己动手丰衣足食。我加了这样一句date.timezone = “PRC”，问题就搞定了，高兴一下. 从php5.1.0开始，php.ini里加入了date.timezone这个选项，默认情况下是关闭的 也就是显示的时间（无论用什么php命令）都是格林威治标准时间 和我们的时间（北京时间）差了正好8个小时，有以下2中方法可以恢复正常的时间。 1，一劳永逸，仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号 = 后面加XXX，重启http服务（如apache2或iis等）即可 2，如果一定要用，而且不能修改php.ini，则需要在关于时间的初始化的语句的 上面加上 date_default_timezone_set (timezone); 关于timezone:必需。时区标识符，比如 “UTC” 或 “Europe/Paris”。合法时区的列表：http://www.php.net/manual/en/timezones.php 大陆内地可用的值是：Asia/Chongqing ，Asia/Shanghai ，Asia/Urumqi （依次为重庆，上海，乌鲁木齐） 港台地区可用：Asia/Macao ，Asia/Hong_Kong ，Asia/Taipei （依次为澳门，香港，台北） 还有新加坡：Asia/Singapore 老外好像把北京漏调了 其他可用的值是：Etc/GMT-8 ，Singapore ，Hongkong ，PRC PRC是什么？PRC是中华人民共和国啊-_- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 解决方式: 在页头使用date_default_timezone_set()设置我的默认时区为北京时间 date_default_timezone_set(&#8216;PRC&#8217;); echo date(&#8216;Y-m-d H:i:s&#8217;); 时间和服务器当前时间一样了!!祝贺之 附date_default_timezone_set用法如下 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; date_default_timezone_set (PHP 5 &#62;= 5.1.0RC1) date_default_timezone_set &#8212; 设定用于一个脚本中所有日期时间函数的默认时区 [...]]]></description>
			<content:encoded><![CDATA[<p>之前有一个遗留问题，就是echo date(“y-m-d h:i:s”,time())回来的时间总是与实际时间对不上，今天终于在网上找到了原因和解决方法，分享如下：</p>
<p>我补充一点，我按照下面提示的方法修改php.ini找不到date.timezone 这行，是不是就没办法了呢，当然不是啦，哈哈没有的话就自己加嘛，自己动手丰衣足食。我加了这样一句date.timezone = “PRC”，问题就搞定了，高兴一下.</p>
<p>从php5.1.0开始，php.ini里加入了date.timezone这个选项，默认情况下是关闭的</p>
<p>也就是显示的时间（无论用什么php命令）都是格林威治标准时间</p>
<p>和我们的时间（北京时间）差了正好8个小时，有以下2中方法可以恢复正常的时间。</p>
<p>1，一劳永逸，仅限能修改php.ini。打开php.ini查找date.timezone 去掉前面的分号<br />
= 后面加XXX，重启http服务（如apache2或iis等）即可</p>
<p>2，如果一定要用，而且不能修改php.ini，则需要在关于时间的初始化的语句的<br />
上面加上 date_default_timezone_set (timezone);</p>
<p>关于timezone:必需。时区标识符，比如 “UTC” 或 “Europe/Paris”。合法时区的列表：<a title="PHP List of Supported Timezones - Manual" href="http://www.php.net/manual/en/timezones.php">http://www.php.net/manual/en/timezones.php</a></p>
<p>大陆内地可用的值是：Asia/Chongqing ，Asia/Shanghai ，Asia/Urumqi （依次为重庆，上海，乌鲁木齐）<br />
港台地区可用：Asia/Macao ，Asia/Hong_Kong ，Asia/Taipei （依次为澳门，香港，台北）<br />
还有新加坡：Asia/Singapore<br />
老外好像把北京漏调了<br />
其他可用的值是：Etc/GMT-8 ，Singapore ，Hongkong ，PRC<br />
PRC是什么？PRC是中华人民共和国啊-_-<img title="更多..." src="http://www.senfe.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-383"></span><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
解决方式:</p>
<p>在页头使用date_default_timezone_set()设置我的默认时区为北京时间</p>
<p>date_default_timezone_set(&#8216;PRC&#8217;);<br />
echo date(&#8216;Y-m-d H:i:s&#8217;);</p>
<p>时间和服务器当前时间一样了!!祝贺之</p>
<p>附date_default_timezone_set用法如下</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
<strong>date_default_timezone_set</strong></p>
<p>(PHP 5 &gt;= 5.1.0RC1)<br />
date_default_timezone_set &#8212; 设定用于一个脚本中所有日期时间函数的默认时区<br />
说明<br />
bool date_default_timezone_set ( string timezone_identifier )</p>
<p>date_default_timezone_set() 设定用于所有日期时间函数的默认时区。</p>
<p>    注: 自 PHP 5.1.0 起（此版本日期时间函数被重写了），如果时区不合法则每个对日期时间函数的调用都会产生一条 E_NOTICE 级别的错误信息。</p>
<p>参数</p>
<p>timezone_identifier</p>
<p>    时区标识符，例如 UTC 或 Europe/Lisbon</p>
<p>返回值<br />
本函数永远返回 TRUE（即使 timezone_identifier 参数不合法）。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>再附上时区标识符:</p>
<p>CET<br />
CST6CDT<br />
Cuba<br />
EET<br />
Egypt<br />
Eire<br />
EST<br />
EST5EDT<br />
Etc/GMT<br />
Etc/GMT+0<br />
Etc/GMT+1<br />
Etc/GMT+10<br />
Etc/GMT+11<br />
Etc/GMT+12<br />
Etc/GMT+2<br />
Etc/GMT+3<br />
Etc/GMT+4<br />
Etc/GMT+5<br />
Etc/GMT+6<br />
Etc/GMT+7<br />
Etc/GMT+8<br />
Etc/GMT+9<br />
Etc/GMT-0<br />
Etc/GMT-1<br />
Etc/GMT-10<br />
Etc/GMT-11<br />
Etc/GMT-12<br />
Etc/GMT-13<br />
Etc/GMT-14<br />
Etc/GMT-2<br />
Etc/GMT-3<br />
Etc/GMT-4<br />
Etc/GMT-5<br />
Etc/GMT-6<br />
Etc/GMT-7<br />
Etc/GMT-8<br />
Etc/GMT-9<br />
Etc/GMT0<br />
Etc/Greenwich<br />
Etc/UCT<br />
Etc/Universal<br />
Etc/UTC<br />
Etc/Zulu<br />
Factory<br />
GB<br />
GB-Eire<br />
GMT<br />
GMT+0<br />
GMT-0<br />
GMT0<br />
Greenwich<br />
Hongkong<br />
HST<br />
Iceland<br />
Iran<br />
Israel<br />
Jamaica<br />
Japan<br />
Kwajalein<br />
Libya<br />
MET<br />
MST<br />
MST7MDT<br />
Navajo<br />
NZ<br />
NZ-CHAT<br />
Poland<br />
Portugal<br />
PRC<br />
PST8PDT<br />
ROC<br />
ROK<br />
Singapore<br />
Turkey<br />
UCT<br />
Universal<br />
UTC<br />
W-SU<br />
WET</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><strong>时间概念 — 24时区、GMT、UTC的意涵</strong></p>
<p>许多人都知道两地时间表简称为GMT或UTC，而世界时区表则通称为World Time ，那么GMT与UTC的实质原意又是为何？世界时区又是怎么区分的？面盘上密密麻麻的英文单字代表着什么意义与作用呢？这些都是新手在接触两地时间表或世界时区表时，脑海中所不断浮现的种种疑问，以下将带您一探时区奥妙的究竟。<br />
<strong>全球24个时区的划分<br />
</strong>相较于两地时间表，可以显示世界各时区时间和地名的世界时区表（World Time）,就显得精密与复杂多了，通常世界时区表的表盘上会标示着全球24个时区的城市名称，但究竟这24个时区是如何产生的？过去世界各地原本各自订定当地时间，但随着交通和电讯的发达，各地交流日益频繁，不同的地方时间，造成许多困扰，于是在西元1884年的国际会议上制定了全球性的标准时，明定以英国伦敦格林威治这个地方为零度经线的起点（亦称为本初子午线），并以地球由西向东每24小时自转一周360°，订定每隔经度15°，时差1小时。而每15°的经线则称为该时区的中央经线，将全球划分为24个时区，其中包含23个整时区及180°经线左右两侧的2个半时区。就全球的时间来看，东经的时间比西经要早，也就是如果格林威治时间是中午12时，则中央经线15°E的时区为下午1时，中央经线30°E时区的时间为下午2时；反之，中央经线15°W的时区时间为上午11时，中央经线30°W时区的时间为上午10时。以台湾为例，台湾位于东经121°，换算后与格林威治就有8小时的时差。如果两人同时从格林威治的0°各往东、西方前进，当他们在经线180°时，就会相差24小时，所以经线180°被定为国际换日线，由西向东通过此线时日期要减去一日，反之，若由东向西则要增加一日。<br />
<strong>格林威治标准时间GMT</strong><br />
十七世纪，格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675年旧皇家观测所(Old Royal Observatory) 正式成立，到了1884年决定以通过格林威治&amp;nbsp;&lt;br&gt;的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟，显示当下的时间，对全球而言，这里所设定的时间是世界时间参考点，全球都以格林威治的时间作为标准来设定时间，这就是我们耳熟能详的「格林威治标准时间Greenwich Mean Time，简称G.M.T.)的由来，标示在手表上，则代表此表具有两地时间功能，也就是同时可以显示原居地和另一个国度的时间。<br />
<strong>世界协调时间UTC</strong><br />
多数的两地时间表都以GMT来表示，但也有些两地时间表上看不到GMT字样，出现的反而是UTC这3个英文字母，究竟何谓UTC？事实上，UTC指的是Coordinated UniversalTime－ 世界协调时间（又称世界标准时间、世界统一时间），是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间，计算过程相当严谨精密，因此若以「世界标准时间」的角度来 说，UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内，若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒，使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准，不过对于现行表款来说，GMT与UTC的功能与精确度是没有差别的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.senfe.com/archives/383.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

