2011-06-16 27 views
0

我的數據庫以GMT格式存儲時間,並且我有一個字段用於存儲每個用戶的時區,因此當我向用戶顯示其時間始終爲本地時間無論他們在哪裏。系統設計 - 處理系統中具有不同時區的用戶的自動帳戶更新

現在的問題是,當支付網關(不遵循GMT)ping我的系統時,這些用戶會自動續訂另一個月的會員資格。

當支付網關ping我的系統時,我可以通過這種方式更新用戶,使其在他們的時區有意義的方式實現解決方案的最恰當方式是什麼?這裏的問題在於,如果用戶的帳戶設置爲1月5日到期,而不是1月5日到期的用戶時區,但1月5日在服務器/支付網關上,我該如何處理?我可以想出一些奇怪的方法來解決這個問題,但我只是想知道什麼可能是最好的方法?

感謝

+0

你知道支付系統的時區嗎? – 2011-06-16 18:52:59

+0

是的,但不是GMT。 – 2011-06-17 01:44:14

回答

0

假設你的支付系統時區是固定的(即使它不是GMZ),所有你需要做的是從用戶的時區爲GMT轉換時,你處理的用戶,並從格林尼治標準時間支付系統時區每當你處理支付系統。

所以你的用戶是PST,你的時區系統是EST,你在英格蘭(或者至少你是GMT)。

用戶註冊時間爲2010年12月31日下午11點(2300)太平洋標準時間爲1個月。

PST是格林威治標準時間-8和東部時區是格林威治標準時間-5(或它是-7和-4 ...我得到ST和DT定期困惑...)。

GMT用戶在2011年1月1日上午6點註冊(上午6點)。 EST用戶於2011年1月1日02:00(凌晨2點)註冊。

正如您所說,如果您告知支付系統在晚上11點在1/31/11用戶到期,它會將其讀作EST,併發送信號在2/1/11凌晨4點到期,這將是太平洋標準時間1月31日上午8點,用戶將失去3個小時。

但是如果您告知支付系統在2/1/11 2AM EST時用戶過期,則信號將在2011年2月1日上午7點(即2011年1月31日下午11點PST)發送。

因此,如果遠程站點不支持GMT,那麼在任何客戶端(無論是用戶還是遠程系統)處理該系統的時區時,總是要求您處理這些問題。