jQuery日期排序

San*_*mar 10 javascript sorting jquery datetime

可能重复:
通过将字符串转换为日期格式进行Javascript日期排序

我不擅长jquery所以我想知道是否有一种方法或插件我可以用它来排序日期div.我在YYYY有约会:MM:DD HH:MM:SS格式.我在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>
Run Code Online (Sandbox Code Playgroud)

谢谢

Par*_*kar 18

我对插件了解不多......虽然如果你想要一个没有插件的轻量级方法,你可以试试这个:

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>
Run Code Online (Sandbox Code Playgroud)

对于js:

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

更新:
感谢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);?
Run Code Online (Sandbox Code Playgroud)

现在,不要告诉我这不起作用......呵呵


Pin*_*nyM 9

您可以使用date.js库结合分拣机函数来执行此操作:

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

原来的回购尚未被维持,但它的一个更新的叉子似乎正在这里.