总是得到正确的日期时间?

时间:2012-12-19 17:01:59

标签: php mysql

我想知道是否有提供正确时间的API /方式/网站/链接?

不是服务器日期时间或客户端日期时间。我正在使用datetime来计算我的游戏网站,以确定用户是否有时间玩游戏。用户来自世界各地,因此如果从美国到欧洲,那么使用他们的客户时间是不匹配的。

然后通常我会使用服务器时间,但不知何故它有时会跳过1.2小时?我想确保有人从同一来源制作时间戳,并且该来源始终是正确的!

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

首先,您应该在客户端和服务器代码中使用UTC以避免出现时区问题。

此外,我理解您的问题的方式是时间正好(纳秒)正确并不那么重要,更重要的是,时间将是服务器和客户端上的SAME。

因此,您需要为客户端和服务器提供该UTC时间的唯一来源。这应该是您的服务器。我建议将您的服务器用作客户端的NTP服务器。但假设您处于网络环境中,这听起来并不切实可行。

所以我建议为服务器的每条消息添加一个时间戳 - UTC时间。客户端必须使用此时间戳作为参考。 Additonaly可以通过致电您的服务器让客户定期更新他们的时间。

答案 1 :(得分:0)

使用服务器的时间很好,只需确保正确获取时区:

$now = new DateTime;
$now->setTimeZone(new DateTimeZone("Europe/London"));

现在,$now将包含一个DateTime对象,在伦敦有正确的时间。

PHP在夏令时和奇怪的自定义时间事件方面表现非常出色。