我不知所措,試圖做到這一點:我們有服務器位於十幾個時區,其中Apache和MySQL運行在所有或部分時區,如以及在Amazon RDS上託管的MySQL。Web和數據庫服務器設置以獲得UTC時區「正確」
我想知道「最佳實踐」,或者如何以其他方式配置每個MySQL和PHP安裝,以便當從PHP添加一行到數據庫時,我確信實際上這個值是UTC時間事件發生時,無論其中服務器發生何時發生。在任何給定的時區將其呈現給用戶不是問題 - 我只想知道datetime列實際上是存儲發生事件時的實際時刻。
現在,Web服務器被設置爲任何本地時區是由於計劃的事件等,我不知道該謎題的哪些部分使用哪些設置從哪裏得出什麼是寫入數據庫。
我很抱歉如果這個問題看起來不清楚,在這一點上我不知道我不知道什麼,所以得到一個確切的問題甚至是具有挑戰性的。此外,我們所有的日期都作爲日期時間字段存儲在數據庫中,因此不可能存儲時間戳。
這就是我正在尋找的......「確保PHP使用UTC ...」,並且我/我們可以在應用程序級別控制它。只要我知道UTC正在進入數據庫,其他一切都是小菜一碟。謝謝 – GDP
最後一個問題......似乎MySQL中的默認時區對任何PHP都沒有影響,除了使用NOW(),CURDATE()等的SQL之外。是這樣嗎? – GDP
@GDP - 我很謹慎地做出這樣的分類陳述。但我會說是。只要你避免依賴於MySQL內部默認時區設置的MySQL函數,你就很好。特別是,INSERT/SELECT行爲與VARCHAR列的行爲不可區分。 – timdev