MySQLのNOW()関数を使用して現在のタイムスタンプを取得しても、そのフィールドをPHP経由で取得し、そのタイムゾーンを異なるタイムゾーンに与えることはできますか?基本的に現在のタイムゾーンの現在の時刻を別のタイムゾーンに変換しますか?PHP/MySQLのタイムスタンプとタイムゾーン
答えて
あなたはDateTimeZone
クラスを使用することができます。
$gmt = new DateTimeZone("GMT");
$datetimeInGMT = new DateTime($now, $gmt);
また、フォームcontinent/city
で場所をとり、例えばEurope/London
。
あなたの日時が非UTCである場合は、setTimezone
を使用することができます。
$datetimeInGMT = new DateTime($now, new DateTimeZone("America/New_York"));
$datetimeInGMT->setTimezone(new DateTimeZone("GMT"));
MySQLのタイムゾーン処理は、はるかに洗練されたPHPのよりもです。それは簡単なタイムゾーン(EST、PSTなど)と私は '地域タイムゾーン'(アメリカ/東部)と呼ばれるものを処理します。地域ゾーンを使用すると、DSTルールが長年にわたって変更された場合でも、夏時間を含む適切な変換が使用されます。
私がやったことは、MySQLの関数UTC_TIMESTAMP()を使ってすべてのdatetimeをUTCとして保存することでした。次に、クエリでは、MySQLの関数CONVERT_TZ()をターゲットタイムゾーンに使用します。 http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
注:タイムゾーンテーブルを更新する必要がある場合があります。 http://dev.mysql.com/downloads/timezones.html
PHP 5以降、PHPはより洗練されたものです。「DateTime」クラスはタイムゾーンを完全にサポートしています。 'DateTime'タイムスタンプを設定し、任意のゾーンに相互変換することができます。 MySQLはタイムゾーン情報を 'DATETIME'フィールドにまったく格納できません。それでも、CONVERT_TZはもちろん有効なアプローチです –
必ずしも有効ではありません。この質問に対するAaronsの応答を読んでください。http://stackoverflow.com/questions/1646171/mysql-datetime-fields-and-daylight-savings-time-how-do-i-reference-the-extra –
- 1. JavascriptとPHPMySQL
- 2. セッションとログインphpmysql help
- 3. PHP DateTimeオブジェクト - タイムスタンプとタイムゾーンの競合
- 4. タイムゾーン付きのdjangoでのUnixタイムスタンプのタイムゾーン
- 5. PHPmySqlのログインWebサイトプログラミング
- 6. 特定のタイムゾーンでunixタイムスタンプを取得
- 7. タイムゾーンなしでタイムスタンプを作成
- 8. django - ランダムにタイムゾーンを変更するタイムスタンプ
- 9. タイムスタンプとタイムゾーンを使用しています
- 10. C#がタイムゾーンとタイムスタンプを取得します
- 11. PostgreSQLはタイムゾーンのないタイムスタンプを変更する - >タイムゾーンを使用する
- 12. PHPタイムスタンプと異なる日付と時刻を別のタイムゾーンで表示
- 13. のgit:私はタイムスタンプを取得することができますgitのから、タイムゾーンおよびタイムスタンプ形式
- 14. postgresqlのタイムゾーンなしのタイムスタンプのためのhibernateマッピング?
- 15. タイムゾーンなしのデータ型タイムスタンプのpostgresに文を挿入NOT NULL、
- 16. PostgreSQLのタイムゾーンのないタイムスタンプに変更するカラムタイプを変更
- 17. 特定のタイムゾーンから現在のタイムスタンプを取得
- 18. タイムスタンプのPHP getdate、タイムゾーンの設定方法は?
- 19. UTC JodaTime.DateTimeオブジェクトを別のタイムゾーンのタイムスタンプに変換する
- 20. 変換されたタイムスタンプのタイムゾーンの相違
- 21. 異なるタイムゾーンのタイムスタンプは同じですか?
- 22. Postgresql-simpleでタイムゾーン付きタイムスタンプを取得する
- 23. Loaddataがタイムスタンプとタイムゾーンを正しく処理していません
- 24. Python pytzあるタイムゾーンから別のタイムゾーンにタイムスタンプ(文字列形式)を変換する
- 25. カントリーとタイムゾーンのマッピングデータベース
- 26. NYとロンドンのタイムゾーン
- 27. Qtとpostgresqlのタイムゾーン
- 28. EKEvent/EKEventStoreとタイムゾーン
- 29. DateTime.Ticks、DateTime.Equalsとタイムゾーン
- 30. JPQLとタイムゾーン
私は既に異なるタイムゾーンにタイムスタンプを持っていますか?それを別のタイムゾーンに変換できますか? – John
@John私が追加した新しいコードを試してみてください。 – marcog
+1(もし可能であれば、 'DateTime'のために+ 1)、これが機能することを忘れないでください。開始日を正しく取得するには、mySQLサーバの現在のタイムゾーンを知る必要があります。 MySQLのタイムゾーン設定は、システムのゾーンと異なる場合があります。 –