我有一個MySQL數據庫,其中有大量數據與時間戳存儲在UTC時間。在當地時間顯示MySQL時間戳
當用戶查詢該數據庫時,我希望他們能夠查看數據,但在本地時區。
我不想每次都要計算偏移量並用PHP代碼更改時間戳。有沒有其他方法?
我有一個MySQL數據庫,其中有大量數據與時間戳存儲在UTC時間。在當地時間顯示MySQL時間戳
當用戶查詢該數據庫時,我希望他們能夠查看數據,但在本地時區。
我不想每次都要計算偏移量並用PHP代碼更改時間戳。有沒有其他方法?
您可以使用localtime()
函數獲取當地時間並從數據庫中查找匹配的記錄。
它可以設置每個連接的時區與MySQL像這樣:
SET time_zone = 'America/Los_Angeles';
或
SET time_zone = '-8:00';
但對我來說最好的解決辦法是localtime();
我在哪裏工作,我們支持全球客戶,並且發現甚至可以將服務器的系統時間設置爲UTC。這使我們能夠確保一致的日誌記錄和基本服務時間戳,並且如果我們需要將服務器添加到不同時區的池中,我們不必擔心本地時間設置是否正確(B/C已經是UTC)。
但是,由於OP提到,我們的應用程序必須計算時區,這是有成本的。我們爲客戶指定時區,並且登錄到客戶站點的用戶獲取客戶的時區,因此我們必須每次計算演示的日期/時間戳。我們會偶爾分析我們的應用,而這些時區轉換幾乎沒有註冊。
在一天結束時,真正取決於您和您處理時區轉換時的情況。