裝上PHP5后你會(huì)發(fā)現(xiàn)這樣的問(wèn)題
$atime=date("Y-m-d H:i:s");
echo $atime;
?>
輸出:2006-05-16 06:36:06
現(xiàn)在幾點(diǎn)了?/我的是14:36
這是為什么捏?
原因是假如你不在程序或配置文件中設(shè)置你的服務(wù)器當(dāng)?shù)貢r(shí)區(qū)的話
PHP所取的時(shí)間是格林威治標(biāo)準(zhǔn)時(shí)間,所以和你當(dāng)?shù)氐臅r(shí)間會(huì)有出入
格林威治標(biāo)準(zhǔn)時(shí)間和北京時(shí)間大概差8個(gè)小時(shí)左右 那么我們?nèi)绾伪苊鈺r(shí)間誤差呢?
我們一起來(lái)看看解決方法:
在頁(yè)頭使用date_default_timezone_set()設(shè)置我的默認(rèn)時(shí)區(qū)為北京時(shí)間
<?
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');
?>
時(shí)間和服務(wù)器當(dāng)前時(shí)間一樣了!
另外附date_default_timezone_set用法如下:
------------------------------------------------------------------------------------
date_default_timezone_set
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設(shè)定用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)
說(shuō)明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 設(shè)定用于所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)。
注: 自 PHP 5.1.0 起(此版本日期時(shí)間函數(shù)被重寫(xiě)了),如果時(shí)區(qū)不合法則每個(gè)對(duì)日期時(shí)間函數(shù)的調(diào)用都會(huì)產(chǎn)生一條 E_NOTICE 級(jí)別的錯(cuò)誤信息。
參數(shù)
timezone_identifier
時(shí)區(qū)標(biāo)識(shí)符,例如 UTC 或 Europe/Lisbon
返回值
本函數(shù)永遠(yuǎn)返回 TRUE(即使 timezone_identifier 參數(shù)不合法)。
-------------------------------------------------------------------------------------
或者修改 php.ini 中 date.timezone 值
date.timezone = PRC