我将日期存储在数据库中的DATETIME类型中,如下所示:Y-m-d 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和这个:在 PHP 中将 UTC 日期转换为本地时间和这个: http://www.php.net/manual/en/function.gmdate.php