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. タイムスタンプとタイムゾーンとのタイムスタンプ
- 2. PHPのタイムゾーンとタイムスタンプ
- 3. JavascriptとPHPMySQL
- 4. タイムスタンプとiOSのタイムゾーンとの比較
- 5. セッションとログインphpmysql help
- 6. タイムゾーン付きPHPタイムスタンプ
- 7. PHP DateTimeオブジェクト - タイムスタンプとタイムゾーンの競合
- 8. PHPmySqlのログインWebサイトプログラミング
- 9. phpmysqlビューへのディープリンク?
- 10. タイムゾーン付きのdjangoでのUnixタイムスタンプのタイムゾーン
- 11. Unixのタイムスタンプをタイムゾーンなしのタイムスタンプに変換する
- 12. csvからインポートされたタイムスタンプのタイムゾーン
- 13. Cassandra:タイムスタンプ値のタイムゾーンを無視する
- 14. 特定のタイムゾーンでunixタイムスタンプを取得
- 15. 日付とタイムゾーンをPostgreSQLのタイムスタンプと比較する
- 16. phpmysqlデータベース接続のエラー
- 17. moment-timezone:タイムゾーンを持つunixタイムスタンプ
- 18. django - ランダムにタイムゾーンを変更するタイムスタンプ
- 19. タイムゾーンなしでタイムスタンプを作成
- 20. 間違ったタイムスタンプ/タイムゾーン変換
- 21. PostgreSQL:演算子が存在しません:タイムゾーンなしのタイムスタンプ==タイムゾーンなしのタイムスタンプ
- 22. C#がタイムゾーンとタイムスタンプを取得します
- 23. タイムスタンプとタイムゾーンを使用しています
- 24. PostgreSQLはタイムゾーンのないタイムスタンプを変更する - >タイムゾーンを使用する
- 25. PHPタイムスタンプと異なる日付と時刻を別のタイムゾーンで表示
- 26. のgit:私はタイムスタンプを取得することができますgitのから、タイムゾーンおよびタイムスタンプ形式
- 27. postgresqlのタイムゾーンなしのタイムスタンプのためのhibernateマッピング?
- 28. タイムスタンプのPHP getdate、タイムゾーンの設定方法は?
- 29. PostgreSQLのタイムゾーンのないタイムスタンプに変更するカラムタイプを変更
- 30. タイムゾーンなしのデータ型タイムスタンプのpostgresに文を挿入NOT NULL、
私は既に異なるタイムゾーンにタイムスタンプを持っていますか?それを別のタイムゾーンに変換できますか? – John
@John私が追加した新しいコードを試してみてください。 – marcog
+1(もし可能であれば、 'DateTime'のために+ 1)、これが機能することを忘れないでください。開始日を正しく取得するには、mySQLサーバの現在のタイムゾーンを知る必要があります。 MySQLのタイムゾーン設定は、システムのゾーンと異なる場合があります。 –