JS按时间戳去分类

来源:互联网 发布:php log打印到日志 编辑:程序博客网 时间:2024/05/18 22:10

后端返回了时间戳,前端按照时间分类。
正常情况下,这种都是后台进行处理,当然也不能排除例外情况。

json数据:

var aa = [            { "time" : 1505152478751 },            { "time" : 1505224173294 },            { "time" : 1505233473065 },            { "time" : 1505314974043 },            { "time" : 1505381144446 },            { "time" : 1505394425780 },            { "time" : 1505400646107 },            { "time" : 1505871416094 },            { "time" : 1505963321653 },            { "time" : 1507175119345 }        ]

希望显示的数据结构是这样:

[    {        "date": "2017年10月",        "data": [            {                "time": 1507175119345            }        ]    }    // ... 后面就是 98月]

解决方法:
可以循环给的数据,先比对年月,根据年月再循环添加年月相等的时间

var formatData = function(data){        var arr = [];        data.forEach(function(item, i){            var tmpDate = new Date(item.time);            var month = tmpDate.getMonth() + 1;            var year = tmpDate.getFullYear();            var tmpMonth = tmpDate.getMonth() + 1;            if(i === 0){                var tmpObj = {};                tmpObj.date = year + '年' + month + '月';                tmpObj.data = [];                tmpObj.data.push(item.time);                arr.push(tmpObj);            }else{                if(arr[arr.length-1]['date'] === (year + '年' + month + '月')){                    arr[arr.length-1]['data'].push(item.time);                }else{                    var tmpObj = {};                    tmpObj.date = year + '年' + month + '月';                    tmpObj.data = [];                    tmpObj.data.push(item.time);                    arr.push(tmpObj);                }            }        });        return arr;    }

// formatData(aa) 输出结果
这里写图片描述

原创粉丝点击