2011-02-04 94 views
4

我想弄清楚如何在我的PHP網站上顯示PST時間。 我已經在MySQL數據庫時間戳已經投入使用NOW(),並美其名曰是這樣的:PHP,Date,MySQL ...中的時區?

日期( 「M/d/YG:IA」 的strtotime($ REF [ 'LASTUPDATED']))

但是,服務器時間在中央,但是,因爲該網站面向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']作爲默認的時區(中央)是和日期時間轉換成*美洲/洛杉磯*時區。

+0

這很好,但有時我得到像這樣返回的值:102/04/11 11:56 am。從哪裏出現一個奇怪的「1」。我檢查過它不在HTML中。任何線索?謝謝! – Sara 2011-02-04 19:58:11