Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是";基于时间戳的地理定位;是否可能,并且在检测位置/城市时是否准确?_Php - Fatal编程技术网

Php 是";基于时间戳的地理定位;是否可能,并且在检测位置/城市时是否准确?

Php 是";基于时间戳的地理定位;是否可能,并且在检测位置/城市时是否准确?,php,Php,我知道答案是可能的,但准确性是主要问题。有什么想法吗?好吧,用户的本地时间只能得到他的本地时间:)。真的,没有任何方法可以这样决定他们的国家。如果检测到UTC+1,即使是欧洲还是非洲,也无法确定。通过分析客户端的IP(请参阅)和/或$\u服务器['HTTP\u ACCEPT\u LANGUAGE']可以得到更准确的结果。世界分为大约24个时区(也有一些奇怪的1/2小时时区)和两个半球,在这两个半球夏令时颠倒(南半球的夏天是北半球的冬天),因此,识别夏时制,你可以有效地将世界划分为48个时间段(并

我知道答案是可能的,但准确性是主要问题。有什么想法吗?

好吧,用户的本地时间只能得到他的本地时间:)。真的,没有任何方法可以这样决定他们的国家。如果检测到UTC+1,即使是欧洲还是非洲,也无法确定。通过分析客户端的IP(请参阅)和/或
$\u服务器['HTTP\u ACCEPT\u LANGUAGE']

可以得到更准确的结果。世界分为大约24个时区(也有一些奇怪的1/2小时时区)和两个半球,在这两个半球夏令时颠倒(南半球的夏天是北半球的冬天),因此,识别夏时制,你可以有效地将世界划分为48个时间段(并非所有国家都使用夏时制,所以它并不完美,但给你一个粗略的概念)。当然,您需要一点javascript来从用户的PC读取这些设置

世界表面面积为510072000平方公里,因此通过使用基于时间戳的位置,您可以将用户的面积缩小到约10626500平方公里。相比之下,加拿大(世界第二大国)的面积为9984670km2。美国大陆分为5个时区(包括阿拉斯加),因此任何美国用户的准确度都将限制在全国5个城市。。。你不能区分纽约和迈阿密,或者旧金山和西雅图之间的差异。使用时区,你不知道我在伦敦、里斯本还是达喀尔


如果这对你来说是一个足够准确的猜测,那么一切都很好。但是GeoIP定位给了你一个更好的精确度,而且已经存在使用这种方法的库。。。那么为什么不使用它呢?

基于时间戳的地理定位?你的意思是从用户的时区设置中识别用户的位置?在欧洲,你甚至不能仅通过时区正确地识别一个国家,更不用说城市了。@Mark BakerYes使用localtime识别访问者的位置。在php中有一个localtime()。这只是我获取位置的附加方法。我使用所有类型的地理位置方法,包括html5地理位置/ip2location/wfp/gps,但仍然不够,因此我将添加时区基准位置,我将使用它来比较位置,甚至语言检测。我在我的脚本中添加了它。baker谢谢你的这个想法。ip2location有缺点(很多用户使用代理服务器的som的bcoz)。如果js关闭,Html 5地理位置将不起作用,我假设如果我可以使用用户自己的timezome来定位用户,也许我可以比较我在ip2location上收到的数据,地理位置和时区位置。当然,如果启用js,您只能获得准确的时区和语言信息。