使用日期时间分组json数据

时间:2014-12-29 15:41:54

标签: javascript json

我需要按日期,月份,星期和日期来查看我的json数据。 我使用REST API,无法获取分组的json数据。 我需要按月,周和日对数据进行分组: 所以它是一个级联的json对象

  

年:{month:{day1:{data1,data2 ...},                 DAY2:{..}},          month2:{..}},

任何其他想法。

这是我获取数据的第一个函数:

getListItems(_spPageContextInfo.webAbsoluteUrl, "Activites", "", FillFormat_JSONDate, "");


function getListItems(url, listname, query, complete, failure) {

    // Executing our items via an ajax request
    $.ajax({
        url: url + "/_api/web/lists/getbytitle('" + listname + "')/items" + query,
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            complete(data); // Returns JSON collection of the results

        },
        error: function (data) {
            //failure(data);
            alert("failure");
        }
    });

}


function FillFormat_JSONDate(dataitems) {

    var jsonStr = JSON.stringify(dataitems.d.results);
    var jsonPars = JSON.parse(jsonStr);
    //map data from SPList to Array
    var jsonYearformat = {};
    var SPListItemP = $.map(jsonPars, function (item) {

        var date = new Date(item.Created);
      //  push data into jsonYearformat

        return false;
    });

}  

1 个答案:

答案 0 :(得分:0)

我使用此代码进行分组:

 i = 0,
    groups = {};
    var year;
    var day;
    var month;
    var SPListItemP = $.map(jsonPars, function (item) {

        elt = new Date(item.IPS_START);
            year = elt.getFullYear();
            month = elt.getMonth() + 1;
            day = elt.getDate();

            groups[year] || (groups[year] = {}); // exists OR create {}
            groups[year][month] || (groups[year][month] = []);
            groups[year][month][day] || (groups[year][month][day] = []);  // exists OR create []
            groups[year][month][day].push(item);

        return false;
    });