类似于支付宝账单数据的json时间戳排序和并问题

本文介绍了一种将时间戳转换为日期格式并按时间排序的方法。通过JavaScript代码实现,首先对包含时间戳的数组进行排序,然后转换时间戳为年月日格式,并按年月归类数据,便于后续分析和展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 原来的数据类型

转变后的数据类型

 

代码如下

<script>
    var shuju = [{
        "createTime": 1537512367759,
        "id": 124,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537405715312,
        "id": 123,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537405681359,
        "id": 122,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537405670371,
        "id": 121,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349159491,
        "id": 120,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349155581,
        "id": 119,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349152438,
        "id": 118,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349148735,
        "id": 117,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349125293,
        "id": 116,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349111144,
        "id": 115,
        "ins": "",
        "integral": -29800,
        "integralType": 1,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349060519,
        "id": 114,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349049274,
        "id": 113,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537349026675,
        "id": 112,
        "ins": "",
        "integral": -29800,
        "integralType": 1,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537348662865,
        "id": 111,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537348657919,
        "id": 110,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537348614373,
        "id": 109,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537348589310,
        "id": 108,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537348043961,
        "id": 107,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537348030920,
        "id": 106,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537347991905,
        "id": 105,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537347979709,
        "id": 104,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537347967124,
        "id": 103,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1737347944137,
        "id": 102,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537521587886,
        "id": 101,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }, {
        "createTime": 1537521587886,
        "id": 100,
        "ins": "",
        "integral": -10,
        "integralType": 2,
        "partnerId": 888923,
        "userId": 168759
    }];

    var a = {},
        b = []

    shuju.sort(compare("createTime"))   //先给时间戳排序

    shuju.map(function (item) {
        var tmpDate = new Date(item.createTime);
        var month = tmpDate.getMonth() + 1;
        var year = tmpDate.getFullYear();
        var transTime = year + '年' + month + "月"   //转化成年月先保存

        var aaa = item;
        aaa.createTime = formatDate(aaa.createTime); //转化成年月日的形式
        //判断a里是否有改属性值  没有就给a增加这个属性
        if (!a[transTime]) {
            b.push({
                time: transTime,
                list: [aaa]
            })
            a[transTime] = 1
        } else {
            b.map(item1 => {
                if (item1.time == transTime) {
                    item1.list.push(item);
                }
            })
        }
    })

    // b.forEach(value => {
    //     value.list.map(chi => {
    //         chi.createTime = formatDate(chi.createTime)
    //     })
    // })
    console.log(b)


    // 时间戳转化
    function formatDate(inputTime) {
        var date = new Date(inputTime);
        var y = date.getFullYear();
        var m = date.getMonth() + 1;
        m = m < 10 ? ('0' + m) : m;
        var d = date.getDate();
        d = d < 10 ? ('0' + d) : d;
        var h = date.getHours();
        h = h < 10 ? ('0' + h) : h;
        var minute = date.getMinutes();
        var second = date.getSeconds();
        minute = minute < 10 ? ('0' + minute) : minute;
        second = second < 10 ? ('0' + second) : second;
        return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second;
    }


    // 时间戳排序  从大到小
    function compare(property) {
        return function (a, b) {
            var value1 = a[property];
            var value2 = b[property];
            return value2 - value1;
        }
    }
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值