JQuery按日期按格式dd / mm / yyyy对元素进行排序

时间:2016-02-18 05:20:39

标签: javascript jquery sorting

我有一系列元素都具有dueDate属性。

但是,日期是dd / MM / yyyy格式。

<div class="taskItem" dueDate="02/02/2016"></div>
<div class="taskItem" dueDate="20/02/2016"></div>
<div class="taskItem" dueDate="01/02/2016"></div>

当我进行以下排序时;

    $('.taskItem').sort(function (a, b) {
        var contentA = Date.parse($(a).attr('dueDate'));
        var contentB = Date.parse($(b).attr('dueDate'));
        console.log(contentA)
        return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
    })

我在20/02/2016的日期上收到错误。 2016年2月20日.dd / MM / yyyy

1 个答案:

答案 0 :(得分:0)

将排序方法更改为demo

    function toDate(value)
    {
       var from = value.split(" ")[0].split("/");
       return (new Date(from[2], from[1] - 1, from[0]));
    }
    $('.taskItem').sort(function (a, b) {
        var contentA = toDate($(a).attr('dueDate')).getTime(); //assuming that attribute value will always be a valid date
        var contentB = toDate($(b).attr('dueDate')).getTime();
        console.log(contentA);
        return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
    });

比较时间(以毫秒为单位)而不是整个日期字符串