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

Posted

技术标签:

【中文标题】对于 unix 格式时间,从本地时间更改为 GMT【英文标题】:Change from Local Time to GMT for unix format time 【发布时间】:2011-05-20 13:44:40 【问题描述】:

使用 php/mysql 我使用函数 mktime 实现了一个表单,用于在 db 中以 unix 格式保存时间。视图表单使用日期函数以可读格式显示时间。 直到现在我才发现我使用的是本地时间,而不是要求的 GMT (UTC) 时间。 在 sw 中更改 gmmktime 的 mktime 和 gmdate 的日期是非常容易的。但问题是是否有办法将数据库中已经存在的时间(以 unix 格式)从本地时间转换为格林威治标准时间。 谢谢

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于对于 unix 格式时间,从本地时间更改为 GMT的主要内容,如果未能解决你的问题,请参考以下文章

在pyspark中将Unix(Epoch)时间更改为本地时间

怎么把UTC改为GMT

从unix时间戳获取GMT日期[重复]

关于时间的梳理

python将10位日期时间戳转换为13位GMT时间戳[重复]

将 GMT 日期时间转换为本地时区日期时间