2011-11-06 77 views
3

我有一個MySQL數據庫,其中有大量數據與時間戳存儲在UTC時間。在當地時間顯示MySQL時間戳

當用戶查詢該數據庫時,我希望他們能夠查看數據,但在本地時區。

我不想每次都要計算偏移量並用PHP代碼更改時間戳。有沒有其他方法?

回答

2

您可以使用localtime()函數獲取當地時間並從數據庫中查找匹配的記錄。

1

它可以設置每個連接的時區與MySQL像這樣:

SET time_zone = 'America/Los_Angeles'; 

SET time_zone = '-8:00'; 

但對我來說最好的解決辦法是localtime();

0

我在哪裏工作,我們支持全球客戶,並且發現甚至可以將服務器的系統時間設置爲UTC。這使我們能夠確保一致的日誌記錄和基本服務時間戳,並且如果我們需要將服務器添加到不同時區的池中,我們不必擔心本地時間設置是否正確(B/C已經是UTC)。

但是,由於OP提到,我們的應用程序必須計算時區,這是有成本的。我們爲客戶指定時區,並且登錄到客戶站點的用戶獲取客戶的時區,因此我們必須每次計算演示的日期/時間戳。我們會偶爾分析我們的應用,而這些時區轉換幾乎沒有註冊。

在一天結束時,真正取決於您和您處理時區轉換時的情況。