2012-10-16 51 views
-2

我有一個網站,用戶(在不同的時區)可以在數據庫中創建新的記錄,我目前有每個記錄與它創建時間的時間戳記錄。 。我在EST時區,但是當我查看我在網站上創建的記錄時,他們在MST中顯示時間,這也恰好是服務器時區...當我查看數據庫中的記錄時,時間戳字段不是轉換爲utc,而是轉換爲mst ...我注意到當我從phpmyadmin插入記錄時,我使用datepicker並選擇18:35:01,但是當我查看記錄後它被插入,它顯示15:35:01 !!!這是非常令人沮喪的,我一直在閱讀周圍的時間戳字段應該自動轉換爲utc,這是我的不在做的......另一件事是,我目前使用日期函數來格式化時間戳,它顯示在00- 00-00 00:00:00格式,這是一段時間給我錯誤,所以我開始使用strtotime,這可能是問題的一部分...我不知道...當記錄被插入到數據庫我是對值使用null,所以它會自動使用當前的本地時間......但事實是,不同時區的人會創建記錄,而不是查看它們的人......所以我需要對所有這些進行調整......任何關於我在做什麼錯誤的建議?時間戳顯示服務器時間,而不是當地時間

+3

我存儲我所有的東西作爲時代和使用JavaScript的用戶顯示其本地時間所用的時區。據我所知,PHP不能自動找出用戶在什麼時區。 – romo

+0

我如何將它存儲爲時代? – user1751581

+0

在PHP'$ epoch = time();' – romo

回答

0

你可以設置你的PHP腳本

date_default_timezone_set('America/Los_Angeles'); 

View the PHP Manual for more details

+0

我曾試過,但它不會改變時間...我認爲它是因爲我從數據庫中已經在錯誤的時區的字符串... – user1751581

+0

不要將您的時間戳存儲爲字符串 - 那裏是用於記錄時間的日期和時間類型。無論如何,如果時間存儲在數據庫中,您也可以存儲時間偏移量。 –

+0

但是,什麼使用時間戳數據類型?我將它存儲爲一個時間戳數據類型,但在PHP中,我使用strtotime格式化日期...但它顯示服務器時間出於某種原因 – user1751581

相關問題