2012年9月25日

PHP筆記 - 解決系統時區(TimeZone)問題

PHP 從 5.1 版以後開始支援時區(TimeZone)設定,即使作業系統已經設定時區,但 PHP 仍可能不理會系統預設值,而採用 GMT 標準時間。共有三種方法可以重新設定 PHP 程式的時區,這將會影響 date() 等函數取的的時間顯示。

方法一、修改 php.ini (會影響所有 PHP 程式):

[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Taipei

方法二、使用 date_default_timezone_set

date_default_timezone_set('Asia/Taipei');

方法三、使用 ini_set (效果同上)

ini_set('date.timezone','Asia/Taipei');


資料庫也有時區問題,例如使用  NOW() 函數取得當前時間,如果時區跟 PHP 程式不一致,也會造成時間判斷及計算的錯誤。解決方法是:在資料庫連線建立的初始化階段,利用以下的 SQL 查詢設定時區。

PostgreSQL:
SET TIME ZONE 'Asia/Taipei';

MySQL:
SET time_zone = 'Asia/Taipei';

1 則留言:

  1. 可以到這裡下載PPTV哦,所有電影都是免費的: http://pptv.tw115.com

    回覆刪除

lyhcode by lyhcode
歡迎轉載,請務必註明出處!