我将日期以 DATETIME 类型存储在我的数据库中,如下所示: Ymd H:i:s
我想要实现的是在用户本地时间从数据库中返回日期。例如,如果用户在法国,我将返回他的时区。是否可以在不存储用户时区的情况下实现这一目标?或者如果有其他可能,并且需要更改数据库中的存储格式,那么我可以这样做。但是,我试图在不存储用户时区的情况下实现这一点。
将时间以 UTC 格式存储在数据库中,然后在您的应用程序中进行时区本地化。不过,您需要知道用户的时区。
好吧,我能想到的唯一方法是在不询问用户他们的时区的情况下这样做:
<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 将区域设置(包括时区)应用到该时间戳。
如果您将日期存储在 GMT 中,那么您可以在他们的时区将它们呈现给用户。
编辑:
date_default_timezone_set('UTC');
$today = getdate();
print_r($today);
检查这个:php 将日期时间转换为 UTC 和这个:将 UTC 日期转换为 PHP 中的本地时间 ,这个:http ://www.php.net/manual/en/function.gmdate.php