按日期排序数组中的JSON,但延长接受13个月的日期

时间:2015-09-22 23:45:16

标签: javascript json date

我有这个功能可以做我想要的,按日期排序一组json对象,但我需要改进以接受13个月(工资)。

module = {};
module.exports = [
    {
        "date": "01-2012"
    },
    {
        "date": "12-2011"
    },
    {
        "date": "01-2014"
    },
    {
        "date": "08-2015"
    },
    {
        "date": "13-2014"
    }
];

document.getElementById("exports").innerHTML = JSON.stringify( module.exports ) ;

function parseMyDate( date_value ) {
    return new Date( date_value.replace(/([0-9]{1,2})\-([0-9]{4})/, "$2-$1-01") );
}

module.exports.sort(function(a, b) {
    return parseMyDate( a.date ) - parseMyDate( b.date );
});


document.getElementById("sorted").innerHTML = JSON.stringify( module.exports ) ;
<h1>module.exports unsorted</h1>
<pre id="exports"></pre>

<h1>module.exports sorted</h1>
<pre id="sorted"></pre>

这可能吗?

我在node.js env中使用它,所以我可以轻松使用一些扩展日期的包,但我没有找到。

感谢。

1 个答案:

答案 0 :(得分:0)

需要更改 parseMydate 函数来处理非日期。我将值转换为整数YYYYMM,这将适用于您的排序。

更新 - 现在处理个位数月份。

<h1>module.exports unsorted</h1>
<pre id="exports"></pre>

<h1>module.exports sorted</h1>
<pre id="sorted"></pre>
{{1}}