PHPでユーザーのタイムゾーンを取得し、視聴者のタイムゾーンに基づいて時間を表示する方法があるのだろうか。私はそれがjavascriptでできることを知っていますが、私はphpで解決策が欲しいです。たくさん検索しましたが、この作業を行う方法が見つかりません。
したがって、基本的に、時刻が8:30 GMT+0530であると想定します。インドのタイムゾーンでは、ユーザーがこれをニューヨークで表示する場合は21:30になります。
登録中にユーザーのタイムゾーンを追加した場合、またはユーザーのタイムゾーンを何らかの方法で知っている場合は、これを試すことができます...
$users = [
[
'username' => 'foo',
'timezone' => 'America/Los_Angeles'
],
[
'username' => 'bar',
'timezone' => 'America/New_York'
]
];
foreach ($users as $user) {
date_default_timezone_set($user['timezone']);
echo $user['username'] . ' date and time is ' . date('Y-m-d H:i:s') . '<br />';
}
出力
foo time is 2013-02-28 18:13:49
bar time is 2013-02-28 21:13:49
JavaScrptでタイムゾーンを使用することもできます。JavaScriptでクライアントのタイムゾーンを取得します。Ajaxリクエストを作成し、PHPセッションまたはデータベースに保存します。
ユーザーのIPを、IPInfoDBなどの利用可能な多くのジオロケーションデータベースと交差させることで、ユーザーのタイムゾーンを取得できます。
http://ipinfodb.com/ip_location_api.php
無料のAPIキーに登録する必要がありますが、実際の例も提供されます(上記)