PHP:如何从数据库返回本地时间

时间:2012-04-13 15:48:40

标签: php date time timezone

我以DATETIME类型将日期存储在我的数据库中,显示为:Y-m-d H:i:s

我想要实现的是在用户的本地时间从数据库返回日期。例如,如果用户在法国,我将返回他的时区。是否可以在不存储用户时区的情况下实现此目的?或者如果其他方式可能,并且数据库中的存储格式需要更改,那么我可以这样做。但是,我试图在不存储用户时区的情况下实现这一目标。

3 个答案:

答案 0 :(得分:2)

以UTC格式存储数据库中的时间,然后在应用程序中进行时区本地化。但是,您需要知道用户的时区。

答案 1 :(得分:1)

嗯,我能想到的唯一方法是在不询问用户时区的情况下这样做:

<p>The time is: <span id="time" data="<?php echo strtotime($time_from_db); ?>"></span></p>
<script type="text/javascript">
    (function () {
        var t = document.getElementById('time'), d = new Date();
        d.setTime(t.getAttribute("data"));
        t.innerHTML = d;
    })();
</script>

这将日期时间作为时间戳传递,然后JS将语言环境(包括时区)应用于。

答案 2 :(得分:1)

如果您以GMT格式存储日期,则可以在时区上将其呈现给用户。

编辑:

 date_default_timezone_set('UTC');
 $today = getdate();
 print_r($today);

检查一下:php convert datetime to UTC 而这:Convert UTC dates to local time in PHP 而这:http://www.php.net/manual/en/function.gmdate.php