2011-03-18 82 views
0

我有一些XML,我正在读jQuery和在屏幕上打印。jquery XML数据排序按日期

这是XML

<users> 
    <user> 
     <id>1</id> 
     <fname>Umair</fname> 
     <timestamp>2011-03-18T03:41:00-07:00</timestamp> 
    </user> 
    <user> 
     <id>2</id> 
     <fname>Neil</fname> 
     <timestamp>2011-03-18T03:41:00-07:00</timestamp> 
    </user> 
</users> 

这是JS

$(xml).find("user").each(function(index, user) { 
    var timestamp = $(user).children("date_time:first").text(); 
    //the dt has date and time in such format 2011-03-18T03:41:00-07:00 
    //more code which generates below html and add to the userTable 
    //<tr> 
    // <td> 
    //  <div>First Name</div> 
    //  <div>2011-03-18T03:41:00-07:00</div> 
    // </td> 
    //</tr> 

    //$("#userTable").append(...all rows here...); 
}); 

这是HTML

<table id="userTable"> 

<table> 

这是工作完美,虽然我想这样做的唯一事情就是对该列表进行排序的用户通过HTML表格显示时。有没有我可以使用或任何方式的jQuery插件?

+0

Umair,如果你给了我们几行相关的HTML,这真的会有所帮助,所以我们可以看到你有什么你正在尝试使用它。问候 – Neil 2011-03-18 22:48:27

+0

我修改了它 – Neutralizer 2011-03-19 05:35:54

+0

Umair,请参阅下面的答案。将日期字符串转换为Date对象,使用“valueOf”获取自1971年以来的毫秒数,然后使用此数值进行排序。问候 – Neil 2011-03-19 20:19:08

回答

0

有一个名为$ .timeago的jQuery插件,它实现了魔术。

0

jQuery tablesorter将做的伎俩。

+0

其实我有表有许多行,但每个具有单元格,其中divs显示为单元格。所以时间戳是在每个单元格的第4格。它不会在这里工作。 – Neutralizer 2011-03-18 19:21:55

0

使用Date对象按日期排序相当简单。见我放在一起使用Date对象,并在一个整洁的使用全局RegExp对象的反向引用的一个类似的例子:

http://jsfiddle.net/elusien/eZ3RQ/

您应该能够将它修改为你的目的。