2016-11-11 10 views
0

私はSymfony3を使ってWebアプリケーションを開発しており、世界中に広めたいと思っています。しかし、私はそれが異なるタイムゾーン管理に関してどのように機能するのだろうかと思っています。Symfonyマルチタイムゾーンアプリケーション

私はウェブ上でこの質問に対する回答を探しており、数日から数多くのテストを行いました。彼らのどれも働かなかった。

誰かに魔法の解決策がありますか?

更新

私はcamroncadeのようなヘルパーについて知りました。しかし、これはちょうどPHPの時間を変換しています。 SQLで時刻を直接変換できるようにしたい

私はすべてのタイムスタンプをUTCでmy dbに保存しています。

私はそのための2つのアイデアを持っていたが、両方が動作しませんでした:

第一:(へ、から、タイムスタンプ)保存された関数convert_tzを作成し、私が保存したいときにすべての私のSQLクエリでそれを呼び出しますか、タイムスタンプを表示します。 これはSymfonyでは不可能です。

第2回:mysqlにユーザーのセッションが対応するタイムゾーンを指定すると、mysqlは自動的に適切な時刻に変換されます。人々は私に、mysqlがそれを行うことができると言いましたが、Symfonyからmysqlにこれを伝える方法については何も見つかりません。

+1

2か月前に[同じ質問](あまりにも幅広く閉じています)(http://stackoverflow.com/questions/39247777/php-different-timezones)を投稿しました。たぶん、あなたは直面している問題に関連するコンテキストについてより具体的な情報(および必要に応じてあなたのコード)を追加して、これを少し改善するかもしれません...あなたは思いませんか? –

+0

いくつかのコードを投稿してください - いくつかのコードを投稿しない限り助けてください... –

+0

私はいくつかの追加の説明を追加しました – Fab

答えて

0

これは、Doctrine/Databaseのより多くの問題である可能性があります。 Doctrineプロジェクトのを確認してください。あなたが最初にあなたがこの混乱を管理する方法についてはまだ楽観的かもしれ 異なるタイムゾーンを保存するための要件に遭遇した場合しかしが 私はあなたをつぶすせ、DateTimeのタイプ

を異なるタイムゾーンの取り扱い

期待は速い。タイムゾーンをサポートして単一のデータベース(教義2でサポートされている)が はありません正しく

は、[...]

はしかしさえタイムゾーンを扱う正しい日時 を可能回避策あり:

  • 常にDateTimeインスタンスをUTCに変換します。
  • 目的の表示にのみタイムゾーンを設定します。
  • 永続性のためにエンティティにタイムゾーンを保存します。

それは可能ですが、そう簡単ではありません。

私たちのアプリの1つでは、特定の時間帯に異なる時間帯に電子メールとプッシュ通知をユーザーに送信します。 DB内でクエリを実行する際、ユーザーのタイムゾーンを常に考慮します。