2016-07-31 6 views
-2

Я хочу, чтобы дни недели от погоды данных Json, я использую этот код 'Угловое - получить дни недели для информации о погоде

var dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 
    var date = new Date(); 
$scope.wDay = dayNames[date.getDay()]; 

HTML

{{wDay}} 

получить результат только один день «ВС» не все дни недели

полные данные JSON

{ 

    "daily": { 
    "summary": "لا أمطار خلال الأسبوع مع درجات حرارة ترتفع حتى 50°C يوم الأربعاء", 
    "icon": "clear-day", 
    "data": [ 
     { 
     "time": 1469912400, 
     "summary": "اجواء جافة خلال اليوم", 
     "icon": "clear-day", 
     "sunriseTime": 1469931375, 
     "sunsetTime": 1469981058, 
     "moonPhase": 0.91, 
     "precipIntensity": 0, 
     "precipIntensityMax": 0, 
     "precipProbability": 0, 
     "temperatureMin": 30.7, 
     "temperatureMinTime": 1469930400, 

     }, 
+0

дата.getDay() всегда возвращается сегодня. – MONTYHS

ответ

0

Эта программа зависит от времени.

new Date().getDay() 

Виль всегда RETUEN вас 0 сегодня

0

Вы увидите только в воскресенье - так это то, что вы специально проверить это с: dayNames[date.getDay()]; - номер, соответствующий день недели для указанной даты.

Если вы хотите их все, просто нг-повторить dayNames:

var dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 
    var date = new Date(); 

    function MyCtrl($scope) { 
     $scope.today = dayNames[date.getDay()]; 
     $scope.all = dayNames; 
    } 

    Today is {{today}}! 

    <div ng-repeat="day in all"> 
    {{day}} 
    </div> 

http://jsfiddle.net/Lvc0u55v/7751/

Редактировать: изменения в рамках данного вопроса, так вот дополнение к ответу. Это, конечно, может быть записано в более сжатом виде, но и расширена для краткости:

http://jsfiddle.net/Lvc0u55v/7896/

Я добавил MomentJS (http://momentjs.com) - отлично подходит для работы с датами.

//Added a filter to grab today's data from JSON 
myApp.filter('GetToday',function(){ 
    return function(epoch) { 

    //Get today 
    var today = moment(); 

    //Loop through all the daily nodes from the JSON 
    for (var i = 0; i < epoch.length; i++) { 

     //convert UNIX timestamp to date 
     var json = moment.unix(epoch[i].time); 

     //determine difference between dates 
     var duration = moment.duration(json.diff(today)); 

     //convert the difference into hours 
     var hours = duration.asHours(); 

     //if it's more than 0 and less than 24 (today) return this node 
     if(hours > 0 && hours < 24) { 
      return epoch[i]; 
     } 
    } 
    } 
}); 

myApp.controller('MyCtrl', ['$scope', '$filter', function($scope, $filter){ 
     $scope.daily = $filter('GetToday')(data[0].daily.data); 
}]); 
+0

вы меня не понимаете, я хочу получить дни недели в данных о погоде json, через код daysnames – razak

+0

Я ответил на ваш вопрос и предоставленный пример. Можете ли вы опубликовать полный объект JSON, который вы используете для данных о погоде? – Fraccus

+0

Да данные о погоде – razak

Смежные вопросы