根据日期排序div - javascript

时间:2018-03-04 02:24:56

标签: javascript jquery

我有数据属性data-submit-date的div,我想根据这个属性的日期格式值对它们进行排序。

这里是其中一个div的代码:

<div class="article" data-submit-date="2017-09-12T05:45:36.951Z">
     <h1>aaaaA</h1>
</div>

我的尝试:

$divss = $(".article");
    var alphaOrderDivs = $divss.sort(function (a, b) {
    return $(a).data("submit-date") > $(b).data("submit-date"); 
});
$(".articles").html(alphaOrderDivs);

我将此行$(a).data("submit-date")替换为Date.parse($(a).data("submit-date")),但失败了。任何人都可以帮助我吗?

感谢提前

2 个答案:

答案 0 :(得分:1)

尝试以下

var articles = $.makeArray($(".article"));
articles.sort(function(a, b) {
   return new Date($(a).data("submit-date")) < new Date($(b).data("submit-date"));
});

片段

var articles = $.makeArray($(".article"));
    articles.sort(function(a, b) {
       return new Date($(a).data("submit-date")) < new Date($(b).data("submit-date"));
    });
    console.log(articles);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="article" data-submit-date="2017-09-10T05:45:36.951Z">
     <h1>aaaaA</h1>
</div>
<div class="article" data-submit-date="2017-09-12T05:45:36.951Z">
     <h1>aaaaA</h1>
</div>
<div class="article" data-submit-date="2017-09-11T05:45:36.951Z">
     <h1>aaaaA</h1>
</div>

答案 1 :(得分:0)

使用getTime()方法,如下所示:

 $divss = $(".article");
 var alphaOrderDivs = $divss.sort(function (a, b) {
   return new Date($(a).data("submit-date")).getTime() > new Date($(b).data("submit-date")).getTime(); 
 });
 $(".articles").html(alphaOrderDivs);

Date对象的getTime()方法会将您的时间解析为毫秒,因此可以帮助您比较它们。