我有数据属性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"))
,但失败了。任何人都可以帮助我吗?
感谢提前
答案 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()方法会将您的时间解析为毫秒,因此可以帮助您比较它们。