Часовые пояса в PHP, Дата, MySQL ...? - PullRequest
4 голосов
/ 04 февраля 2011

Я пытаюсь выяснить, как отображать время в PST на моем php-сайте.Я помещаю метки времени в базу данных MySQL с помощью NOW () и называю их так:

date ("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>';
    }
    }

1 Ответ

3 голосов
/ 04 февраля 2011
$date = new DateTime($ref['lastupdated']);
$date->setTimezone(new DateTimeZone('America/Los_Angeles'));
echo $date->format('m/d/y g:i a');

, учитывая, что PST равно Америка / Лос-Анджелес .Вы должны убедиться, что для date.timezone установлен правильный часовой пояс для Central .Это может быть выполнено либо через php.ini, либо через date_default_timezone_set().

Затем код обрабатывает вашу входящую строку $ref['lastupdated'] как находящуюся в часовом поясе по умолчанию ( Central ) и преобразует дату-время в часовой пояс * America / Los_Angeles *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...