2011-10-11 236 views
0

當地時間我覺得一分錢開始下降,但我不能找到一個明確的定義。我的繼承人問題:設置服務器

我是英國的,但我的服務器是北京時間。我一直在通過簡單的NOW()我的數據庫字段「時間」(這是一個時間戳)設置爲添加數據庫enteries。這似乎增加了我在美國鳳凰城服務器的本地時間(在我後面-7小時)。

我應該使用date_defaault_timezone_set和_GET,設置爲我適當的時區,來處理我的位置的差異(即我有專門負責處理的時區進出我的數據庫)。

因此,例如,訪問我的數據庫在網上我我的配置設置爲美國/鳳凰城,但如果我複製我的分貝到英國上我的本地主機上運行我需要設置時區歐洲/倫敦。只有那麼我會正確地把時間戳寫入我的數據庫。

是這樣嗎? 在此先感謝

+0

如果你不工作絕對時間(即時間戳),您不應將它們以該格式保存在數據庫中。改用'datetime'字段。 – JJJ

+0

爲什麼我應該使用日期時間字段? – giles

+0

因爲那時他們不會受到時區的影響。如果保存「2011-10-11 10:00:00」,則意味着上午10點。如果您保存1318320841,它的多數民衆贊成表現爲在世界各地不同的時間在不同的時區的絕對時間。 – JJJ

回答

0

您可以爲MySQL在一次連接後設置時區:

mysql_query("SET time_zone = your_timezone"); 

或者你也可以設置時區爲你的PHP設置:

date_default_timezone_set('your_timezone'); 
+0

這個php會覆蓋兩個嗎? (看到我從一個PHP表達式調用NOW()) – giles

+0

我想在sql查詢中使用'NOW()',對吧?因爲php沒有這個功能。 – Vasily