2011-02-04 21 views
4

私は自分のPHPサイトでPSTに時間を表示する方法を理解しようとしています。 私は今でMySQLデータベースのタイムスタンプを入れて()と、このようにそれらを呼び出すされています:PHP、日付、MySQLのタイムゾーン...?

日付( "M/D/YG:IA"、のstrtotime($ refの[ 'lastupdated']))

ただし、サーバーの時刻はCentralに設定されていますが、WebサイトはPSTタイムゾーンの人に対応しているためです。基本的にはPSTで表示する必要があります。私がこれをやり遂げる方法はありますか?そのような価値観を持ち、2つまたは何かを差し引くのですか?何か案は?

私はこれをPHPのルートにする必要があるのか​​、それともむしろMySQL経由で問題を解決できるかどうかはわかりません。

ご意見ありがとうございます - ありがとう!

$query = "SELECT refid, CONCAT(fname,' ',lname) refname, email, street, city, state, zip, interestlvl, status, added, lastupdated FROM referrals WHERE affid='$affid' ORDER BY added DESC;"; 

$result = mysql_query($query) or die("Query Failed: ".mysql_errno()." - ".mysql_error()."<BR>\n$Query<BR>\n"); 


    if ($result) { 
      while ($ref = mysql_fetch_array($result, MYSQL_ASSOC))  { 
       echo ' 


    <td bgcolor="#EFEFEF" class="list">'. 
     date_default_timezone_set('America/Chicago'); 
     $date = new DateTime($ref['lastupdated']); 
     $date->setTimezone(new DateTimeZone('America/Los_Angeles')); 
     $date->format('m/d/y g:i a') 
     .'</td>'; 
    } 
    } 

答えて

3
$date = new DateTime($ref['lastupdated']); 
$date->setTimezone(new DateTimeZone('America/Los_Angeles')); 
echo $date->format('m/d/y g:i a'); 

PSTアメリカ/ロサンゼルスであることを考えます。 date.timezoneの正しいタイムゾーンに設定されていることを確認する必要があります。です。これは、php.iniまたはdate_default_timezone_set()経由で実行できます。

コードは、デフォルトのタイムゾーン(中央)であるとして、あなたの着信文字列$ref['lastupdated']を扱い、タイムゾーン* *アメリカ/ Los_Angelesに日時を変換します。

+0

これは素晴らしいことですが、時々私はこのように返された値を得ます:102/04/11 11:56 am。どこからも奇数の「1」が現れます。私はそれがHTMLにないことを確認しました。どんな手掛かり?ありがとうございました! – Sara

+0

入力文字列が奇妙な出力を引き起こすのは興味深いでしょう... –

+0

2011-02-04 13:56:44はMySQLの値です。 それからコードから102/04/11 11:56 amを取得します。 :O 私はそれを好きに変更しても、私は1Feb/04/11を取得します – Sara

関連する問題