【问题标题】:get user time according to his correct timezone [closed]根据他的正确时区获取用户时间[关闭]
【发布时间】:2013-02-12 03:14:39
【问题描述】:

我正在开发一个应用程序,我需要根据用户的活动正确时区发布时间。现在我已经探索了很多方法,如 javascript,php,但我不能确定它们中的任何一个都会给出正确的时间,因为我不能依赖 JS,因为用户可能将他的时区设置错误并进入 php,我的服务器可能是世界各地取决于托管服务。

我检查了一些问题,建议要获取特定时区的时间,我应该 ping 一些地理数据库并根据从 php 收到的 IP 地址获取用户的时区。 你们所有的专家都在那里,请建议最好的技术是什么?据我所知,twitter 之类的也使用某种 ip 数据库来获取操纵时间。

提前致谢。

注意还没解决,我会定期更新状态。

我正在寻找一个一致的答案。请你们在那里,帮助我和其他在他们的编程生涯中至少会偶然发现一次这个问题的人

更新:正如我所说我会更新,我通知大家我最终使用 JS 来获取用户的时间,因为依赖第三方 Ip 数据库提供时区可能存在限制信息,然后玩它。所以谢谢大家..

【问题讨论】:

  • 我会选择 JS,如果用户的时区错误,那就是他们的问题。此外,IP 数据库增加了很多开销,只是为了更准确地告诉时间......
  • @AlexLunix 但似乎每个人都在警告不要依赖 JS 和信任用户。
  • 你不能依赖任何东西 .. 即使你使用 http://www.php.net/manual/en/function.geoip-time-zone-by-country-and-region.php 和用户的 $_SERVER['REMOTE_ADDR'] 也不能保证 that 是正确的。跨度>
  • 但这是他们自己的时间。你至少可以相信它是正确的。我从来不知道有人在他们的电脑上打错了时间。
  • @coder101 PHP 中的 GEOIP 函数都使用 MaxMind GEOIP DB,我认为它或多或少是规范的,所以它本质上就是你所说的

标签: php javascript timezone


【解决方案1】:

您可以使用http://www.ip2location.com/ DB 和 api 获取时区并使用 DateTime::setTimezone 计算用户的时间

http://php.net/manual/en/datetime.settimezone.php

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 2016-06-21
    • 2023-04-09
    • 2020-05-07
    • 2021-03-13
    • 2015-01-16
    • 2016-10-21
    • 2011-10-23
    • 2013-09-18
    相关资源
    最近更新 更多