Изменение с местного времени на GMT для времени формата Unix - PullRequest
0 голосов
/ 20 мая 2011

Используя PHP / mysql, я реализовал форму для сохранения в db a time в формате unix с помощью функции mktime. Форма просмотра отображает время в удобочитаемом формате, используя функцию даты. Только теперь я обнаружил, что я использую местное время, а не время по Гринвичу (UTC), как было запрошено. Изменения довольно просты в изменении mktime для gmmktime и даты для gmdate. Но вопрос заключается в том, есть ли способ преобразовать время, уже находящееся в БД (в формате unix), из местного времени в gmt. Спасибо

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Вот функция, которую я написал для преобразования часовых поясов.Должно быть довольно понятно:

function switch_timezone($format, $time = null, 
    $to = "America/Los_Angeles", $from = "America/Los_Angeles")
{
    if ($time == null) $time = time();

    $from_tz = new DateTimeZone($from);
    $to_tz = new DateTimeZone($to);

    if (is_int($time)) $time = '@' . $time;

    $dt = date_create($time, $from_tz);

    if ($dt)
    {
        $dt->setTimezone($to_tz);
        return $dt->format($format);
    }

    return date($format, $time);
}
0 голосов
/ 20 мая 2011

Вы можете использовать функцию gmdate().Взгляните на Руководство .

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