2012-04-13 31 views
1

我保存在我的DATETIME型数据库中的日期返回本地时间,寻找为:年月日H:我:■PHP:如何从数据库

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

回答

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然后应用场所(包括时区),以。

+0

你是否建议将时间存储在数据库中作为时间戳? – Darko 2012-04-13 16:00:16

+0

我喜欢使用时间戳,但实际上并没有什么区别,除非您输入的值是数字而不是格式化的日期。 – 2012-04-13 16:14:29

2

在数据库中以UTC存储时间,然后在应用程序中执行时区本地化。不过,您需要知道用户的时区。

+0

...并考虑到夏令时。 – 2012-04-13 15:53:32

+0

@EdHeal:没错。如果您使用JS中的getTimezoneOffset()方法向服务器报告,我相信DST已经在偏移量中占了。 – FtDRbwLXw6 2012-04-13 16:16:22

+0

它确实假定机器的时钟设置正确!公共机器(如这个)已经用了3小时22分钟! – 2012-04-13 16:26:34