0

我目前有几个类在属性中包含日期。

<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);
});

对上述任何帮助将不胜感激。

谢谢 :)

4

1 回答 1

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)));

示例小提琴

于 2013-11-11T15:56:05.633 回答