从纬度和经度获取 PHP 时区名称?
有没有办法通过用户的纬度和经度获取时区?不仅仅是偏移量,还有它们所在的实际时区。
本质上,我正在寻找与 DateTimeZone::getLocation 相反的内容,它返回特定时区的纬度和经度。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有没有办法通过用户的纬度和经度获取时区?不仅仅是偏移量,还有它们所在的实际时区。
本质上,我正在寻找与 DateTimeZone::getLocation 相反的内容,它返回特定时区的纬度和经度。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
对于那些想要从国家/地区代码、纬度和经度获取时区的人。 (如果您的服务器上安装了 geoip 模块,则很容易获得它)
尝试一下,我添加了距离计算 - 仅适用于那些具有多个时区的国家/地区。
啊,国家代码是两个字母的 ISO 代码。
For those who wants to get timezone from country code, latitude and longitude. ( easy to get it if you have a geoip module installed on your server )
Try this, I've added a distance calculation - only for those countries which has multiple timezones.
Ah, and the country code is a two letter ISO code.
Geonames 应该很好地完成这项工作:
http://www.geonames.org/
他们还有一个 php图书馆。
Geonames should do the job nicely:
http://www.geonames.org/
They've also got a php library.
Google Time Zone API 是一个很好的资源。
文档:https://developers.google.com/maps/ Documentation/timezone/
它需要
latitude
和longitude
并返回如下数组:...但有一些限制:
A good resource is the Google Time Zone API.
Documentation: https://developers.google.com/maps/documentation/timezone/
It takes
latitude
andlongitude
and returns array like this:...but there are some limits:
我最近在一次长达 8 小时的黑客马拉松中做了一个时区解决方案。它很快就组装在一起了,我很想进一步开发它并将其作为产品出售,但由于我没有办法做到这一点,所以我在 我的 github。
还有一个演示,但如果它触及资源,它可能会崩溃限制。它是 Google App Engine 上的免费网络应用程序。
您绝对可以在运行时间、空间、数据方面进一步优化/增强这一点,以满足您的需求。
I did a timezone solution recently in an 8 hour long hackathon. It's quickly put together and I'd love to develop it further and sell it as a product but since there is no way for me to do it, I've open sourced it at my github.
There is a demo too but it may go down if it hits resource limits. It's a free webapp on Google App Engine.
You can definitely optimize/augment this further in wrt - running time, space, data - to suit your needs.
雅虎地点 API 通过反向地理定位提供时区信息。
一探究竟。
http://developer.yahoo.com/geo/placefinder/guide/requests.html
The Yahoo places API provides timezone information via reverse geolocation.
Check it out.
http://developer.yahoo.com/geo/placefinder/guide/requests.html
找到距离所有时区位置列表中最接近的点怎么样?我想知道这有多准确?
更新:
最终,我想出了这个对我有用的片段。这对于所有位置都适用,但对于靠近边界的位置可能不准确。
How about finding the closest point to the one in the list of all timezone locations? I wonder how accurate is this?
UPDATE:
Eventually, I came up with this snippet that works for me. This will work fine for all locations, but may not be accurate for those close to borders.