跳到主要內容

伺服器GMT+8時區設置方法(包括虛擬主機)

一般來說伺服器架好之後預設的時區是顯示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


留言