对于unix格式时间,从本地时间更改为GMT

时间:2011-05-20 13:44:40

标签: php mysql time

使用PHP / mysql我使用函数mktime实现了一个表单,用于在数据库中保存unix格式的时间。视图表单使用日期函数以可读格式显示时间。 直到现在我才发现我正按照要求使用当地时间而不是GMT(UTC)时间。 对于gmmktime的更改mktime和gmdate的日期,这些更改非常容易。但问题是,是否有办法将DB中已经存在的时间(采用unix格式)从本地时间转换为gmt时间。 感谢

2 个答案:

答案 0 :(得分:0)

您可以使用函数gmdate()。看看Manual

答案 1 :(得分:0)

这是我编写的用于进行时区转换的函数。应该是不言自明的:

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);
}