我以DATETIME类型将日期存储在我的数据库中,显示为:Y-m-d H:i:s
我想要实现的是在用户的本地时间从数据库返回日期。例如,如果用户在法国,我将返回他的时区。是否可以在不存储用户时区的情况下实现此目的?或者如果其他方式可能,并且数据库中的存储格式需要更改,那么我可以这样做。但是,我试图在不存储用户时区的情况下实现这一目标。
答案 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