javascript - 如何按时间排序(格式 : 5:40 PM) in javascript for use with DataTables?

标签 javascript jquery sorting time datatables

我有一个正在使用的数据表,它有 5 列 ( http://datatables.net/ )

列是

  1. 日期格式:1 月 5 日
  2. 时间格式为:10:31 AM (xx:xx XX)
  3. 第 3、4、5 列并不重要,它们只是我不关心排序的数据,只要 1 和 2 正确即可。

我想先按日期排序(最近的),然后我想按时间排序(最近的在顶部)。

因此,1 月 5 日下午 4:58 应该在凌晨 4:58 之前显示,显然所有其他数字也需要在所有其他时间正常工作。格式始终相同,即:12:34 AM、4:15 PM、12:00 AM 等。

就日期而言,这已经很完美了。数据表中最多只有 2 天的数据,因此即使它滚动到该月的第一天,它仍然会显示在顶部,这很好。我查看了文档,但对如何对我的时间列进行正确排序感到困惑。

这是我的代码:

oTable = $('#posts').dataTable({
    "bSort": true,
    "aaSorting": [ [0,'desc'], [1,'asc'] ],
    "aoColumns": [
                null,
                { "sType": 'time-sort' },
                null,
                null,
                null
           ]

});

来自这里:http://datatables.net/release-datatables/examples/basic_init/multi_col_sort.html

我现在必须使用“aoColumns”的 sType 属性为时间构建某种自定义排序算法(您可以在上面的示例链接中看到它,他区分大小写),我不知道如何这样做 :( 到目前为止,我什至不确定我这样做是否正确。它似乎对两列进行了很好的排序,但现在我需要这样做,以便时间合适......

这是我认为我需要的代码的另一部分。 (再一次,这是来自示例)。我 99% 确定这是我需要为升序和降序输入自定义时间排序代码的地方。

/* Define two custom functions (asc and desc) for time sorting */
jQuery.fn.dataTableExt.oSort['time-sort-asc']  = function(x,y) {
    return ???;
};

jQuery.fn.dataTableExt.oSort['time-sort-desc'] = function(x,y) {
    return ???
};

最佳答案

您可以通过将输入字符串中的时间解析为日期对象然后比较日期对象来执行此操作:

此处的工作演示:http://live.datatables.net/erefom/2/edit#preview

此处来源:http://live.datatables.net/erefom/2/edit

另请参阅此答案:What is the best way to parse a time into a Date object from user input in Javascript?

关于javascript - 如何按时间排序(格式 : 5:40 PM) in javascript for use with DataTables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752172/

相关文章:

python - 在 Python 中按另一个数组对数组的行进行排序

c++ - 使用STL c++使用绝对值对数字进行排序

c++ - 在 C++ 中对结构数组进行排序

javascript - 使用 JavaScript 中的提示方法进行故障排除

向下滚动时 JavaScript 菜单隐藏,停止时出现

javascript - 为什么我的提交按钮没有隐藏?

javascript - 滚动时的 Jquery 延迟

javascript - Nightmare JS返回页面状态码

javascript - 如何获取嵌套表的 div 内输入文本的值?

javascript - 使用铁路由器后 meteor 模板助手不工作