一般來說伺服器架好之後預設的時區是顯示GMT的,也就是【格林威治】時間,與台灣的時間相差8小時,所以如果使用PHP的 date("Y-m-d H:i:s");函數是會顯示與當前時間差8小時的時間,解決方法如下。
方法1、如果是自己的主機(例如XAMPP),只需要修改PHP中的php.ini這支檔用筆記本打開,搜尋找到以下的設定:
date.timezone =
改成
date.timezone = Asia/Taipei
即可,注意如果檔名前面有;要吧他拿掉,這樣伺服器的時區就會顯示台灣時區了。
方法2、如果是租虛擬主機沒有修改php.ini的權限,那可以在根目錄中加一個.htaccess檔,用筆記本打開貼入以下設定:
php_value date.timezone 'Asia/Taipei'
這樣虛擬主機根目錄中所有網站的時區就會顯示台灣時區了。
方法3、如果虛擬主機不支援php_value date.timezone方法,那只能修改php檔了,可以在每個跟時間有關的date("Y-m-d H:i:s");函數檔頭最頂端加上一段
ini_set('date.timezone','Asia/Taipei');
這樣這個檔案中所有的date("Y-m-d H:i:s");函數都會顯示台灣時區,但如果有其他檔也有用到date("Y-m-d H:i:s");函數則檔頭都要加上ini_set('date.timezone','Asia/Taipei'); 才行。
方法4、如果虛擬主機不支援ini_set();函數,那只能用php的date_default_timezone_set方法,跟ini_set用法一樣,在與時間有關的檔案頂端加上宣告
date_default_timezone_set('Asia/Taipei');
即可,這樣這個檔案中所有的date("Y-m-d H:i:s");函數都會顯示台灣時區,但如果有其他檔也有用到date("Y-m-d H:i:s");函數則檔頭都要加上date_default_timezone_set('Asia/Taipei');才行。
教學撰寫:徐嘉裕 Neil hsu
留言
張貼留言