2

私は CakePHP 2.2 で Web アプリを構築しています。オーストラリア、彼は彼らの国に応じて時刻を見ることができます. 別々の日付と時刻を表示したい..時刻と日付を組み合わせたくない

ここで私は今何をしていますか

AppControllerで私はこれをしました

 public function beforeRender(){
   if ($this->Auth->login() || $this->Auth->loggedIn()) {
     App::uses('CakeTime', 'Utility');

  }}

エコーの仕方も知らない

4

2 に答える 2

2

データベースを使用せずにクライアントの場所を見つけることができます。これには、いくつかの API を使用する必要があります。たとえば、ホスト API を使用しました。

コントローラーコード:

            $clientIpAddress = $this->request->clientIp();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://api.hostip.info/get_html.php?ip=$clientIpAddress&position=true");
    curl_setopt($ch, CURLOPT_HEADER,0);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);

$data は以下のサンプルを返します。Country: UNITED STATES (US) City: Aurora, TX Latitude: 33.0582 Longitude: -97.5159 IP: 12.215.42.19

つまり、この $data から場所を取得しました。

次のようにビューファイルでこれを使用します。

$this->Time->format('F jS, Y h:i A',date('M d, Y h:i:s'), null,'Aurora, TX');

ただし、都市名、IP アドレスの値をセッションに書き込むことを忘れないでください。そのため、1 人のユーザーのページが読み込まれるたびに curl リクエストを送信する必要はありません。初めて場所とIPアドレスを見つけてセッションに書き込み、それを使用します

于 2013-06-24T09:58:20.017 に答える