Вопрос по javascript, sorting, jquery – jQuery сортировка по дате [дубликаты]

7

Possible Duplicate:
Javascript date sorting by convert the string in to date format

Я не очень хорошо разбираюсь в jquery, поэтому мне было интересно, есть ли способ или плагин, который я могу использовать для сортировки div-ов по дате. У меня есть дата в формате ГГГГ: ММ: ДД ЧЧ: ММ: СС. Я показываю дату в div, как показано ниже. Div находятся в неупорядоченном формате, и я хочу отсортировать их в последнюю дату в первую очередь.

<div id="dateDiv">2012-04-15 10:25:45</div>
<div id="dateDiv">2012-04-10 19:41:08</div>
<div id="dateDiv">2012-04-20 07:00:10</div>
<div id="dateDiv">2012-04-12 16:45:50</div>

Спасибо

Посмотрите на этот вопрос - & gt;stackoverflow.com/questions/2769301/…  Выглядит похоже на ваш. deepcell
@RichardNeilIlagan: Извините, моя ошибка. Я не использовал дубликат идентификатора в реальном коде, я просто скопировал вставку того же погружения здесь, в примере, для удобства. Sandeep Kumar
Как примечание стороны, используя дубликатidс большой нет-нет. Richard Neil Ilagan

Ваш Ответ

2   ответа
8

date.js библиотека в сочетании сэтот Функция сортировки для этого:

$('#dateDiv').sortElements(function(a, b){
    return Date.parse($(a).text()) > Date.parse($(b).text()) ? 1 : -1;
});

Исходное хранилище не было сохранено, но, похоже, его обновленная ветвь находится в процессе.Вот.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededgithub.com/datejs/Datejs
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
16

если вы хотите легкий способ без плагинов, вы можете попробовать это:

HTML:

<div id="D">
    <div class="dateDiv">2012-04-15 10:25:45</div>
    <div class="dateDiv">2012-04-10 19:41:08</div>
    <div class="dateDiv">2012-04-20 07:00:10</div>
    <div class="dateDiv">2012-04-12 16:45:50</div>
</div>

Для JS:

var elems = $.makeArray($(".dateDiv"));
elems.sort(function(a, b) {
    return new Date( $(a).text() ) < new Date( $(b).text() );
});
$("#D").html(elems);

UPDATE:
Спасибо CMS за ответ на этот вопрос о датах разбора:Почему Date.parse дает неверные результаты?

function parseDate(input) {
  var parts = input.match(/(\d+)/g);
  // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]])
  return new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4], parts[5]); //     months are 0-based
}

var elems = $.makeArray($(".dateDiv"));
elems.sort(function(a, b) {
    console.log( parseDate( $(a).text() ) );
    return parseDate( $(a).text() ) < parseDate( $(b).text() );
});
$("#D").html(elems);​

Теперь не говорите мне, что это не работает ... хе-хе

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededjsfiddle.net/WpTb5/1Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededjsfiddle.net/jCkCP
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы