1

こんにちは皆さん、私は週末を通してこのことを機能させるのに苦労してきましたが、頭を悩ませているようには見えません。私が達成しようとしているのは、openweathermap API を使用して配列から weatherdata を選択し、このデータを新しい配列にプッシュすることです。私の問題は、これを常に翌日の午前 6 時に開始する 24 時間予測のように機能させたいことです。したがって、この 24 時間間隔内に存在するデータのみをプッシュしたいと考えています。しかし、私が言ったように、私はこれを機能させることができないようです。

これが私のコードです:

HTML

<div ng-app="weatherApp" ng-controller="weatherController">
    <ul>
        <li ng-repeat="x in forecastArray">
            {{x.dt_txt}}
        </li>
    </ul>
</div>

JavaScript

var app = angular.module('weatherApp', []);

app.controller('weatherController', function($scope, $http) {

    $scope.units = 'metric';
    $scope.apiId = '...'; //My api key  


    $http.jsonp('http://api.openweathermap.org/data/2.5/forecast?', { params : {
        q : "london",
        units : $scope.units,
        callback: 'JSON_CALLBACK',
        APPID: $scope.apiId
    }}).success(function(response){
        $scope.data = response.list;
    });

    $scope.forecastArray = []; //new array
    var dtStart = new Date(...); //Have no clue how to define this object...
    var dtEnd = new Date(+new Date(dtStart) + 86400000); //dtStart + 24 hours

    $scope.data.forEach(function(item){
        var date = new Date(item.dt); //defining the dt property in data as a new dateobj
        if(date > dtStart && date < dtEnd){
            $scope.foreCastArray.push(item);
        }
    });

});
4

1 に答える 1

1

Dateしたがって、基本的には、明日の午前 6 時のオブジェクトを作成する方法を尋ねます。

Dateまず、次を使用して明日のオブジェクトを作成します

var today = Date();
var tommorow = Date();
tommorow.setDate(today.getDate() + 1);

次に、時と分を正しく設定します。使用Date.setHours(hour,min,sec,millisec):

tommorow.setHours(6,0,0,0);

それはうまくいくはずです。

于 2015-11-10T16:53:44.233 に答える