2

可能重复:
如何在任何位置获取当前时间

我听说过用于地图的开放式 Google WebServices,我想知道在时间、货币和 Google 的其他功能方面是否有类似的东西。关于时间我发现了一个类似的问题,但我想要一些商业用途的解决方案: 如何在任何位置获取当前时间 哦,我想通过 AJAX(客户端)调用它。

这个想法是提供一个包含世界各地一些城市的下拉列表,一旦选择了一个城市,应该显示该城市的当地时间。我在寻找包含所有各种夏季变化的算法时遇到了问题,因此这种方法似乎更容易。

4

1 回答 1

4

工作演示

使用HTML5 地理定位 API,您可以获得当前的纬度/经度坐标:

var currentPosition;
navigator.geolocation.getCurrentPosition(function(position) {
    currentPosition = position;
});

您可以使用它向您在帖子中提到的Web 服务发出ajax 请求:

$(function(){
    var tzObject;
    $("button").click(function(){
        console.log(currentPosition);
        var dt = "lat="+currentPosition.coords.latitude +
                 "&lng="+currentPosition.coords.longitude +
                 "&username=demo"; //change to your uName

        $.get("http://api.geonames.org/timezoneJSON", dt, function(msg) {
            tzObject = msg;
            alert(tzObject.time + " " + tzObject.timezoneId);
        });
    });        
});

这将返回一个包含相关时区信息的 JSON 对象。当然,如果您有一组城市列表,则可以轻松存储它们的纬度/经度坐标,然后将其用于请求。您需要获得一个用户名才能连续使用该 Web 服务来处理多个请求(使用“演示”,每小时有一个限制)。

于 2012-10-10T10:56:13.970 回答