当前位置:  开发笔记 > 编程语言 > 正文

如何通过PHP轻松转换UTC的日期?

如何解决《如何通过PHP轻松转换UTC的日期?》经验,为你挑选了3个好方法。

我在UTC中的日期时间字段中将日期存储在MySQL数据库中.我正在使用PHP,并且我调用了date_timezone_set('UTC'),以便所有对date()的调用(没有时间戳)以UTC格式返回日期.

然后,我有它,所以给定的网站可以选择其时区.现在我希望日期显示在网站的时区.因此,如果我将日期存储为"2009-04-01 15:36:13",则应在PDT时区(-7小时)内为用户显示为"2009-04-01 08:36:13" .

通过PHP执行此操作的最简单(最少代码)方法是什么?到目前为止,我所想到的只是

date('Y-m-d H:i:s', strtotime($Site->getUTCOffset() . ' hours', strtotime(date($utcDate))));

有更短的方式吗?



1> Jordan S. Jo..:

为什么不使用内置的DateTime/TimeZone功能?

setTimezone(new DateTimeZone('America/Los_Angeles'));

?>

DateTime类:http://us3.php.net/manual/en/class.datetime.php DateTimeZone类:http://us3.php.net/manual/en/class.datetimezone.php

PHP支持的时区:http://php.net/manual/en/timezones.php



2> Richard Will..:

你正在做的是正确的做事方式.我建议坚持只使用UTC工作,并在最后一分钟转换显示.

这是我使用PHP附带的DateTime类进行时区转换的快速函数.它比你有更多的代码,但我认为它更简单,更好的结构化方式......

function convert_time_zone($date_time, $from_tz, $to_tz)
    {
    $time_object = new DateTime($date_time, new DateTimeZone($from_tz));
    $time_object->setTimezone(new DateTimeZone($to_tz));
    return $time_object->format('Y-m-d H:i:s');
    }

http://richardwillia.ms/blog/2011/04/time-zone-conversion-using-datetime-class/

希望有所帮助.



3> PCheese..:

这是我们对服务器所做的.我们将所有内容设置为使用UTC,并通过动态转换显示在用户的时区中.这篇文章底部的代码是如何使其工作的一个例子; 您应该确认它适用于您的设置(即夏令时等)的所有情况.

配置CentOS

    编辑/etc/sysconfig/clock并设置ZONEUTC

    ln -sf /usr/share/zoneinfo/UTC /etc/localtime

配置MySQL

    如有必要,将时区导入MySQL:

    mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

    编辑my.cnf并在[mysqld]部分中添加以下内容:

    default-time-zone = 'UTC'

PHP代码

format('U');
        return ($ret < 0 ? 0 : $ret);
    }

    public static function UTCToPST($format, $time) {
        $dst = intval(date("I", $time));
        $tzOffset = intval(date('Z', time()));
        return date($format, $time + $tzOffset - 28800 + $dst * 3600);
    }

}


我们最终做了同样的事情.我们通过date_default_timezone_set('UTC')在PHP中将时区设置为UTC,我们还更改了MySQL中的默认时区.然后,为了转换,我们使用PEAR Date类,它甚至可以处理夏令时.
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有