我在建立一個mysql表格的早期階段,將保存來自兩個時區的數據。我的機器和服務器都在America/Los_Angeles時區。時區表沒有加載到MySQL服務器中,但在本網站的其他地方,我讀過這不是必要的,只要php處理查詢 - php會將UTC偏移量寫入到mysql中。 Mysql數據類型是TIMESTAMP。樣本數據已經被插入一個PHP腳本,其中包括以下語句:php mysql UTC timestamp
if($company == 'HOS_CIN' or $company == 'HOS_FER') {
date_default_timezone_set("America/New_York");
}
然後兩個PHP腳本用於在瀏覽器中顯示的數據。其中一個包括上述說明,另一個則沒有。帶有聲明的那個人顯示的時間是中午的EST,而沒有顯示的時間是PST的中午。如果mysql存儲了UTC偏移量,那麼顯示的時間不應該有三小時的差異嗎?
PHP版本5.3.3,MySQL的版本5.0.95
1)不,PHP將不打印UTC如果你不告訴它(例如,將時區設置爲UTC)2)'TIMESTAMP'在存儲/檢索日期時從/到MySQL服務器的時區轉換,似乎你沒有考慮設置一個已知的一。 –
是不是date_default_timezone_set的目的? – dirk
不確定你現在的意思,如果你選擇「America/New_York」,它將使用紐約時間,而不是UTC。 MySQL是一種不同的程序,有時甚至可以在另一臺計算機上運行;它不會關心PHP時區。 –