2012-11-28 133 views
0

在用戶輸入格式爲「11/28/2012 11:34 am」的日期時間模式下工作。時區偏移問題

然後,我使用strtotime將其轉換爲時間戳並將其保存到我的數據庫。

然後我使用下面的日期(DateTime,'D M jS g:i')將它顯示給我的模板中的用戶。

問題是與創建事件的用戶不在同一時區的用戶沒有獲得更新以反映其時區的正確時間。

我有權訪問用戶發佈和用戶查看的時區偏移量。

我的問題是我應該如何彌補時區差異?

+4

你的問題是什麼? – Madbreaks

+1

轉換前使用GMT偏移量。例如。 「2012年11月28日上午11:34 +2 GMT」 –

+0

EL,當我將它保存到數據庫或當我顯示給用戶時,你在哪裏得到+2 GMT? –

回答

1

當字符串轉換爲真正的時區使用這種覆蓋服務器時區與用戶提交值的時區:http://us3.php.net/manual/en/function.date-default-timezone-set.php

當後來取回,使用相同的功能覆蓋服務器時區當前用戶的一個(適合用戶顯示日期時間的那一個)。

還要確保將其正確存儲在數據庫中:最好使用PHP內的Unix時間戳,數據庫中的TIMESTAMP列,保存到數據庫時的FROM_UNIXTIME()數據庫函數和從數據庫中檢索時的UNIX_TIMESTAMP() MySql RDBMS,如果它不同,請檢查你自己的DBMS)。

+0

這可能會工作,除非我只有權訪問偏移量而不是指定的時區。 –

+0

@ResidualEnvy:如果正確完成,_will_會工作。在「其他」部分的可用時區標識列表中查看名稱以「Etc /」開頭的時區:http://us3.php.net/manual/en/timezones.others.php – Tadeck

+0

Works well,ty許多。 –