關於Mysql處理時間的方式

Mysql的時區是和伺服器所在時區一樣,通常我們操作Mysql時是在本機,所以顯示的時間看起來沒什麼問題,不過我們還是必須瞭解Mysql處理時間的方法,它是以UTC來儲存時間,當使用者使用select撈出時間資料時再轉換為當地時區的時間。

php 5.1之後有加入時區的概念,可使用date_default_timezone_set(“時區”)函數來設定時區,可設定的時間可在http://tw.php.net/manual/en/timezones.php查詢。另外,可使用date_default_timezone_get()函數取得目前時區的設定。若一開始沒設定時區,預設是以UTC時間來顯示。

如果有需要考慮時區的問題,例如網頁是準備提供給多國使用者使用,或者網頁空間是存放在跨國主機上,那麼存入資料庫的資料最好使用格林威治時間(GMT)或UTC(世界協和標準時間),再搭配使用者的時間來顯示時間字串。

如果不需要考慮時區的問題,例如伺服器的時間(時區)和作業環境相同,未來也不太可能有變化,直接使用伺服器的時間會比較省事。

但考慮時區的作法看起來比較有彈性,不過php版本間作法有差異,需留意。

在〈關於Mysql處理時間的方式〉中有 2 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Proudly using Dynamic Headers by Nicasio WordPress Design