显示HTML属性的最新日期

时间:2013-11-11 15:50:34

标签: javascript jquery arrays date

我目前有几个类,其中包含属性中的日期。

<div id="container">
  <div class="date" date="19/11/2013"></div>
  <div class="date" date="06/11/2013"></div>
</div>
<div id="result"></div>

我想做的是找到最新的日期并在页面上显示。到目前为止,我已经在属性中找到了信息,检查了它在数组中是否存在并将其推送到数组中。我不完全确定这里最好的方法,但理想情况下我想找到最新的日期,然后将其附加到结果容器中。

$('.date').each(function () {
    var dateArray = [];
    var date = $(this).attr('date');
    if ($.inArray(date, dateArray) == -1) {
        dateArray.push(date);
    }

    $('#result').append(dateArray);
});

对此有任何帮助将不胜感激。

谢谢:)

1 个答案:

答案 0 :(得分:0)

首先,您的HTML无效,因为date不是有效的属性。如果您需要元素中的自定义值,请使用data-*属性:

<div id="container">
    <div class="date" data-date="19/11/2013"></div>
    <div class="date" data-date="06/11/2013"></div>
</div>
<div id="result"></div>

要比较JS中的日期,您需要将它们转换为Date类型,但是您需要将成分日/月/年部分拆分为日期为英国格式。试试这个:

var dates = $('.date').map(function() {
    var dateArr = $(this).data('date').split('/');
    return new Date(dateArr[2], dateArr[1] -1, dateArr[0])
});
$('#result').append(new Date(Math.max.apply(null, dates)));

Example fiddle