2011-02-04 45 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