【问题标题】:How to sort a html table by dates in textfields?如何按文本字段中的日期对 html 表格进行排序?
【发布时间】:2010-08-23 10:02:47
【问题描述】:

我正在使用DataTable Plugin 进行 html 表格排序。它工作正常。现在我在文本框中有一列包含 Dates(d/m/Y) 的列。对该列的排序不起作用。我想按日期排序。

首先我应用以下代码使文本框可排序。

包含 3 个字段的表格:

<script type='text/javascript' charset='utf-8'>

                $.fn.dataTableExt.afnSortData['dom-text'] = function  ( oSettings, iColumn ) {
                    var aData = [];
                    $( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
                        aData.push( this.value );
                    } );
                    return aData;
                }


                $(document).ready(function() {
                    $('#sortableTable').dataTable( {
                        'aoColumns': [null, null,{ 'sSortDataType': 'dom-text' }]
                    } );
                } );


</script> 

日期排序在没有文本字段的日期列上工作正常。

如何对文本框中的日期应用日期排序。

编辑:

jquery.dataTables.js 中有以下函数

"date-asc": function ( a, b )
        {
            var x = Date.parse( a );
            var y = Date.parse( b );

            if ( isNaN(x) || x==="" )
            {
            x = Date.parse( "01/01/1970 00:00:00" );
            }
            if ( isNaN(y) || y==="" )
            {
                y = Date.parse( "01/01/1970 00:00:00" );
            }

            return x - y;
        },

        "date-desc": function ( a, b )
        {
            var x = Date.parse( a );
            var y = Date.parse( b );

            if ( isNaN(x) || x==="" )
            {
            x = Date.parse( "01/01/1970 00:00:00" );
            }
            if ( isNaN(y) || y==="" )
            {
                y = Date.parse( "01/01/1970 00:00:00" );
            }

            return y - x;
        },

【问题讨论】:

  • this page in the manual 不回答你的问题吗?
  • @jasper:如果您将该评论作为答案,那么我一定会接受。我在阅读您提到的此页面时搜索了我的答案。
  • 我只是不确定 - 通常提问者已经尝试过第一个谷歌结果:P
  • 看看DynamicTable,用于对 HTML 表进行排序、过滤和分页的小型 JavaScript 库。演示可用here。麻省理工学院许可。

标签: jquery sorting date jquery-plugins


【解决方案1】:

DataTable 的手册中有a page 正是关于该主题的,也许它可以帮助您找到问题的答案。

【讨论】:

    【解决方案2】:
    <script type='text/javascript' charset='utf-8'>
    
                    $.fn.dataTableExt.afnSortData['dom-text'] = function  ( oSettings, iColumn ) {
                        var aData = [];
                        $( 'td:eq('+iColumn+') input', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
                            aData.push( this.value );
                        } );
                        return aData;
                    }
    
    
                    $(document).ready(function() {
                        $('#sortableTable').dataTable( {
                            'aoColumns': [null, null,{ 'sSortDataType': 'dom-text', 'sType': 'date' }]
                        } );
                    } );
    
    
    </script> 
    

    【讨论】:

      猜你喜欢
      • 2020-01-15
      • 2013-10-06
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      相关资源
      最近更新 更多