2016-11-11 66 views
0

我正在開發一個使用Symfony3的Web應用程序,並希望將它傳播到世界各地。但我想知道它如何在不同的時區管理上發揮作用。Symfony多時區應用程序

我在網上尋找這個問題的答案,並且在幾天後做了大量的測試。他們都沒有工作。

有人有一個神奇的解決方案嗎?

UPDATE

我瞭解像camroncade助手。但這只是轉換php時間。 我希望能夠將時間直接轉換中,我已把在UTC所有時間戳在我的分貝SQL

我有兩個想法,但都沒有奏效:

1:創建存儲的功能CONVERT_TZ(時間戳,從,到),並把它在我所有的SQL查詢時,我想保存或顯示時間戳。 但是這對於Symfony來說是不可能的。

第二步:告訴mysql mysql用戶會話對應的時區,mysql會自動轉換爲正確的時間。人們告訴我,MySQL可以做到這一點,但我沒有找到任何方式來告訴這如何從Symfony的MySQL。

+1

兩個月前,你已經發布了[同樣的問題](http://stackoverflow.com/questions/39247777/php-different-timezones)(封閉太寬)。也許你可以改進這一點,添加更多具體的信息(如果需要的話,你的代碼)關於你正面臨的問題的上下文......你不覺得嗎? –

+0

發表一些代碼 - 沒有幫助,除非你發佈一些代碼... –

+0

我添加了一些額外的解釋 – Fab

回答

0

這可能更像是一個學說/數據庫問題。從Doctrine項目中檢查Working With DateTime Instances

處理不同的時區與DateTime類型

如果你第一次遇到要求保存不同的時區 你是如何管理這個爛攤子仍不樂觀,但讓 我暗戀你期望快速。沒有一個單一的數據庫進行 有(由學說2支持)支持時區的正確

[...]

然而,有一個解決辦法甚至允許正確的日期,時間與 處理時區:

  • 總是將任何DateTime實例轉換爲UTC。
  • 僅設置顯示時區
  • 將時區保存在實體中以實現持久性。

所以這是可能的,但不是那麼簡單。

在我們的應用程序中,我們發送電子郵件並在特定時間向不同時區的用戶推送通知。在數據庫中進行查詢時,我們始終考慮用戶的時區。