裝上PHP5後你會發現這樣的問題:
<?php $atime=date("Y-m-d H:i:s"); echo $atime; ?>
你也許會發現,輸出的時間和你現在的時間是不相同的。
原因是假如你不在程序或配置文件中設置你的服務器當地時區的話,PHP所取的時間是格林威治標准時間,所以和你當地的時間會有出入。
格林威治標准時間和北京時間大概差8個小時左右 那麼我們如何避免時間誤差呢?
我們一起來看看解決方法:
在頁頭使用date_default_timezone_set()設置我的默認時區為北京時間。
<? date_default_timezone_set('PRC'); echo date('Y-m-d H:i:s'); ?>
時間和服務器當前時間一樣了。
如果發生插入數據庫錯誤的話,請確保 date('Y-m-d H:i:s') 中的 H 為大寫。
另外附date_default_timezone_set用法如下:
(PHP 5 >= 5.1.0RC1)
date_default_timezone_set -- 設定用於一個腳本中所有日期時間函數的默認時區
說明
bool date_default_timezone_set ( string timezone_identifier )
date_default_timezone_set() 設定用於所有日期時間函數的默認時區。
注: 自 PHP 5.1.0 起(此版本日期時間函數被重寫了),如果時區不合法則每個對日期時間函數的調用都會產生一條 E_NOTICE 級別的錯誤信息。
參數
timezone_identifier
時區標識符,例如 UTC 或 Europe/Lisbon
返回值
本函數永遠返回 TRUE(即使 timezone_identifier 參數不合法)。
或者修改 php.ini 中 date.timezone 值,date.timezone = PRC