使用jQuery </p>按日期顺序排列<p>元素

时间:2013-12-10 11:07:01

标签: javascript jquery html datetime

嗨大家我有一个数据日期列表,其中包含需要出现的订单日期。

这是我的代码:

HTML:

<p data-date="Fri, 26 Aug 2011 20:58:39 GMT">item 1</p>
<p data-date="Fri, 24 Aug 2011 20:58:39 GMT">item 2</p>
<p data-date="Fri, 25 Aug 2011 20:58:39 GMT">item 3</p>

jQuery的:

$("p").sort(function(a,b){
    return new Date($(a).attr("data-date")) > new Date($(b).attr("data-date"));
}).each(function(){
    $("body").prepend(this);
})

jsFiddle Demo

似乎工作50%

1 个答案:

答案 0 :(得分:1)

您需要手动解析dd/mm/yyyy格式日期。此外,sort函数要求您返回小于或等于零的数字;不是truefalse。修订功能:

$("#posts li").sort(function (a, b) {
    var aComp = $(a).attr("data-date").split("/");
    var aDate = new Date(+aComp[2], +aComp[1] - 1, +aComp[0]);
    var bComp = $(b).attr("data-date").split("/");
    var bDate = new Date(+bComp[2], +bComp[1] - 1, +bComp[0]);
    return aDate - bDate;
}).prependTo("#posts");

Demo here