Отображать последнюю дату из атрибута HTML

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

Любая помощь по вышеуказанному вопросу была бы весьма признательна.

Благодаря :)

  • 0
    Привет oGeez - Спасибо за ответ :). В моей тестовой среде приведенный выше код добавляет обе отдельные даты. Надеюсь, этот аспект работает. Мне просто нужна последняя дата, если это возможно. Еще раз спасибо.
Теги:
arrays
date

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, однако вам нужно разделить составные дни в день/месяц/год, поскольку дата находится в формате UK. Попробуй это:

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

Пример скрипки

  • 0
    Спасибо, Рой, ценится. Я не могу заставить вышеуказанное работать в моем коде, но я взглянул на скрипку. Я хотел бы свидания в Великобритании, если это возможно? Я замечаю, что когда я изменяю первое число в атрибуте на 01, оно классифицируется как февраль, кажется, «00» работает на январь.
  • 0
    @ Трон, извини, это моя ошибка. Месяцы начинаются с нуля в конструкторе Date. Я обновил мой пример
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню