2016-07-31 99 views
-2

我想从数据天气的Json一周的日子里,我使用这个代码 “角 - 获取天周天气信息

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

HTML

{{wDay}} 

GET结果只一天'太阳'不是所有星期的一周

完整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

date.getDay()总是返回今天。 – MONTYHS

回答

0

此程序是时间依赖性的。

new Date().getDay() 

WIL 0今天

0

您将只能看到星期天总是retuen你 - 因为它是你专门测试了它: dayNames[date.getDay()]; - 相当于一周的某一天在指定日期的数字。

如果你希望他们所有的,只是NG-重复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

你不理解我,我想通过代码daysnames – razak

+0

得到天气数据json的一周中的几天我根据你的问题和提供的例子回答。你能发布你用于天气数据的完整JSON对象吗? – Fraccus

+0

是的天气数据 – razak