Forecast.io使用时间参数与JSONP无法正常工作

时间:2015-05-14 18:13:51

标签: jsonp

我的计划是向用户显示过去3天的各种天气统计数据,但我无法正确使用时间参数。这是我的代码:

var forecastURL = "https://api.forecast.io/forecast/API_KEY/".concat(lat,lng,new Date().toISOString().replace("Z","-72:00"));
                $.ajax({
                    url: forecastURL,
                    jsonp: "callback",
                    dataType: "jsonp",
                    success: function(response) {
                        console.log(response);
                    }
                });

我不确定我做的是正确的日期,但我得到的是一个警告,说不推荐使用getDefaultPrevent。还有其他错误还是只是我约会?如果是日期,那么过去操纵ISO 8601字符串的正确结构是什么?如果可能的话,最好是7天。

1 个答案:

答案 0 :(得分:0)

首先,在这个用法中concat不会在值之间返回逗号,所以我的代码使用+ "," +方法而不是创建另一个变量,如果你想要的话你需要做的使用concat。

其次,在ISO时间戳中,即:

2015-05-25T20:56:15.179Z

Z表示时间的UTC偏移量为零。在UTC + 10小时内,这可以用+1000代替。如果您希望更改时间值本身,那么UTC偏移量就不是这样做的地方。

var d = new Date();
d.setHours(d.getHours()-72);

var forecastURL = "https://api.forecast.io/forecast/API_KEY/" + lat + "," + lng + "," + d.toISOString();
//Your existing AJAX call would go here

您可以将getHourssetHours替换为getDatesetDate或任何其他JS日期函数。

我无法测试您问题的JSON部分,因为我没有API密钥,但它看起来应该有效。在jQuery here中找到有关JSON的更多信息。