PHP中的时区,日期,MySQL ......?

时间:2011-02-04 18:13:55

标签: php mysql date time timezone

我想知道如何在我的php网站上显示PST的时间。 我一直在使用NOW()在MySQL数据库中加入时间戳,并按如下方式调用它们:

日期(“m / d / y g:我是”,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>';
    }
    }

1 个答案:

答案 0 :(得分:3)

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

鉴于 PST America / Los Angeles 。您必须确保将date.timezone设置为 Central 的正确时区。这可以通过php.inidate_default_timezone_set()来完成。

然后,代码会将您的传入字符串$ref['lastupdated']视为默认时区( Central ),并将日期时间转换为* America / Los_Angeles *时区。