如何从 JSON 按月获取数据

How to get data by month from JSON

我有这个JSON:

[{"id":66,"price":56,"start":"Fri, 20 May 2016 00:00:00 +0000","user_id":8},{"id":65,"price":55.5,"start":"Wed, 18 May 2016 00:00:00 +0000","user_id":8},{"id":64,"price":55.5,"start":"Fri, 13 May 2016 00:00:00 +0000","user_id":8},{"id":63,"price":55.5,"start":"Thu, 12 May 2016 00:00:00 +0000","user_id":8},{"id":62,"price":55,"start":"Fri, 22 Apr 2016 00:00:00 +0000","user_id":8},{"id":61,"price":55.5,"start":"Thu, 28 Apr 2016 00:00:00 +0000","user_id":8},{"id":60,"price":54.5,"start":"Thu, 21 Apr 2016 00:00:00 +0000","user_id":8},{"id":59,"price":55,"start":"Wed, 20 Apr 2016 00:00:00 +0000","user_id":8}]

我使用以下数据创建 html:

function draw(data) {

   $.each(data, function(idx, obj) {
    $('#bid').append('<div class="row"><div class="col-md-2"><h5>'+obj.price+'</h5></div></div>');
});
};

但现在我只需要显示当月的数据... 我如何才能从 JSON 等获取仅四月份的数据? 如何只过滤我需要的月份?

您可以使用类似 indexOf 的内容:

var data = [{"id":66,"price":56,"start":"Fri, 20 May 2016 00:00:00 +0000","user_id":8},{"id":65,"price":55.5,"start":"Wed, 18 May 2016 00:00:00 +0000","user_id":8},{"id":64,"price":55.5,"start":"Fri, 13 May 2016 00:00:00 +0000","user_id":8},{"id":63,"price":55.5,"start":"Thu, 12 May 2016 00:00:00 +0000","user_id":8},{"id":62,"price":55,"start":"Fri, 22 Apr 2016 00:00:00 +0000","user_id":8},{"id":61,"price":55.5,"start":"Thu, 28 Apr 2016 00:00:00 +0000","user_id":8},{"id":60,"price":54.5,"start":"Thu, 21 Apr 2016 00:00:00 +0000","user_id":8},{"id":59,"price":55,"start":"Wed, 20 Apr 2016 00:00:00 +0000","user_id":8}];
     $.each(data, function(idx, obj) {
        if(obj.start.toString().indexOf('Apr') > -1){
           $('#bid').append('<div class="row"><div class="col-md-2"><h5>'+obj.price+'</h5></div></div>');
        }
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="bid"></div>

 $.each(data, function(idx, obj) {
    if(obj.start.toString().indexOf('Apr') > -1){
       $('#bid').append('<div class="row"><div class="col-md-2"><h5>'+obj.price+'</h5></div></div>');
    }
 });

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

或者您可以检查 json start 当前月份,例如:

var currentMonth = new Date();//current date
$.each(data, function(idx, obj) {
  var d = new Date(obj.start);//json date 
  //compare json month with current month and if is equal append price
  if (d.getMonth() === currentMonth.getMonth()) {
    $('#bid').append('<div class="row"><div class="col-md-2"><h5>' + obj.price + '</h5></div></div>');
  }

});

var data = [{
  "id": 66,
  "price": 56,
  "start": "Fri, 20 May 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 65,
  "price": 55.5,
  "start": "Wed, 18 May 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 64,
  "price": 55.5,
  "start": "Fri, 13 May 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 63,
  "price": 55.5,
  "start": "Thu, 12 May 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 62,
  "price": 55,
  "start": "Fri, 22 Apr 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 61,
  "price": 55.5,
  "start": "Thu, 28 Apr 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 60,
  "price": 54.5,
  "start": "Thu, 21 Apr 2016 00:00:00 +0000",
  "user_id": 8
}, {
  "id": 59,
  "price": 55,
  "start": "Wed, 20 Apr 2016 00:00:00 +0000",
  "user_id": 8
}];
var currentMonth = new Date();//current date
$.each(data, function(idx, obj) {
  var d = new Date(obj.start);//json date 
  //compare json month with current month and if is equal append price
  if (d.getMonth() === currentMonth.getMonth()) {
    $('#bid').append('<div class="row"><div class="col-md-2"><h5>' + obj.price + '</h5></div></div>');
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="bid"></div>

参考资料

Date.prototype.getMonth()