我保存在我的DATETIME型数据库中的日期返回本地时间,寻找为:年月日H:我:■PHP:如何从数据库
我想实现的是从数据库中返回日期用户的当地时间。例如,如果用户在法国,我会返回他的时区。是否有可能在不存储用户的时区的情况下实现这一点?或者,如果有其他可能,并且数据库中的存储格式需要更改,那么我可以做到这一点。但是,我试图在不存储用户时区的情况下实现这一点。
我保存在我的DATETIME型数据库中的日期返回本地时间,寻找为:年月日H:我:■PHP:如何从数据库
我想实现的是从数据库中返回日期用户的当地时间。例如,如果用户在法国,我会返回他的时区。是否有可能在不存储用户的时区的情况下实现这一点?或者,如果有其他可能,并且数据库中的存储格式需要更改,那么我可以做到这一点。但是,我试图在不存储用户时区的情况下实现这一点。
嗯,我能想到这样做不要求他们的时区的用户的唯一方法是这样的:
<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然后应用场所(包括时区),以。
在数据库中以UTC存储时间,然后在应用程序中执行时区本地化。不过,您需要知道用户的时区。
...并考虑到夏令时。 – 2012-04-13 15:53:32
@EdHeal:没错。如果您使用JS中的getTimezoneOffset()方法向服务器报告,我相信DST已经在偏移量中占了。 – FtDRbwLXw6 2012-04-13 16:16:22
它确实假定机器的时钟设置正确!公共机器(如这个)已经用了3小时22分钟! – 2012-04-13 16:26:34
如果您以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
你是否建议将时间存储在数据库中作为时间戳? – Darko 2012-04-13 16:00:16
我喜欢使用时间戳,但实际上并没有什么区别,除非您输入的值是数字而不是格式化的日期。 – 2012-04-13 16:14:29