2017-05-10 12 views
0

インドでは、php date()、mysql NOW()、タイムスタンプで3列にして2017-05-09 10:12:21を保存するとインドになります。結果はサーバ時刻を現地時刻に変換

date()      NOW()   timestamp 

2017-05-09 04:38:37 | 2017-05-08 22:38:37 | 2017-05-08 22:38:37

今、世界のユーザーのタイムゾーンに合わせて、この時刻を現地時刻に変換したいと思います。どのように私はこれを行うことができます。私はPHPで新しいです間違いを許してください。

$yourTimestampは現地時間のタイムスタンプで、 $timezoneはあなたにタイムスタンプを変換する時間帯である

答えて

0

MySQLの列がタイプTIMESTAMPのであれば、日付時刻はUTCに格納されます。挿入して取得している間に、ローカルタイムゾーンから変換されます。

は、MySQLのデフォルトのタイムゾーンが何であるかを確認するには、これを試してみてください。

SELECT @@system_time_zone; 

PHPのdate関数は、現在のUnixタイムスタンプからフォーマットされた日付文字列を返します。現在のデフォルトタイムゾーンを使用してタイムスタンプをフォーマットします。私はあなたの質問の例から理解して何から

echo date_default_timezone_get(); 

は、これら二つのタイムゾーンが異なっていなければならない、またはそれらは同じ時間を表示します:あなたはこれでデフォルトのタイムゾーンを取得することができます。

すべてのデフォルトタイムゾーンをUTCに設定し、リクエストの発生元に応じてローカルタイムゾーンに変換するのが標準的な方法です。これは、タイムゾーンがHTTP仕様の一部ではないので、それほど単純ではありませんが、これはあなたに役立ちます:How to detect user's timezone?

ローカルのタイムゾーンにすべてを保存したいと思っていて、ユーザーが気にしないと自信がある場合は、phpとmysqlのデフォルトのタイムゾーンをローカルのタイムゾーンに変更できます。

のMySQL:How do I set the time zone of MySQL?

PHP:http://php.net/manual/en/function.date-default-timezone-set.php

関連する問題