让jquery数据表按时对特殊日期输入字段进行排序的问题

时间:2015-03-05 18:19:48

标签: jquery jquery-datatables datatables-1.10

我有一个使用jQuery Datatables 1.10.5的页面。该表工作正常,但我有这种格式的日期' D-M-YY'蛋。 10-03-15,(2015年3月10日)。

我已将此包含在头部中,因此我正在加载moment.js。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script type="text/javascript" src="//cdn.datatables.net/plug-ins/f2c75b7247b/sorting/datetime-moment.js"></script>

我称之为初始化表:

$(document).ready( function () {
$.fn.dataTable.moment( 'D-M-YY' );
$('.datatable').DataTable({....options here, language etc..

我想知道我做错了什么,因为专栏不会对我的约会进行排序。我已经阅读了所有文档datatable.net,但似乎我正确地称它为。

***更新 我能够使用此插件并对输入字段进行排序。 http://datatables.net/plug-ins/sorting/custom-data-source/dom-text

我仍然只能按照UNIX日期排序,比如yyyy-mm-dd。我想按自定义日期dd-mm-yy排序。我用它来初始化输入字段:

/ *使用列* /

中的所有输入框的值创建一个数组
$.fn.dataTable.ext.order['dom-text-numeric'] = function ( settings, col ) 
{return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) 
{ return $('input', td).val() * 1; } ); }

然后我定义了日期字段no。 3

$('#example').dataTable( { "columns": [ null, null, { "orderDataType":"dom-text", type: 'text' } ] } );

我甚至试过这个:

{ "orderDataType":"dom-text", type: 'date' }

是否有有效值&#34; dom-date&#34; ?

1 个答案:

答案 0 :(得分:0)

在我希望显示不同于我希望列排序的信息之前,我遇到了类似的情况。这就是我最终得到的结果:

  • 第1列:以您想要的任何格式显示日期
  • 第2列:使用日期部分将正确排序的字符串放在一起,并隐藏此列

然后,对var result = new Buffer(test, 'base64'); 定义使用以下内容:

columnDefs

这就是说:当您对第一列进行排序时,请使用第二列值进行排序。