jqGrid没有正确排序日期

使用jqGrid排序日期时遇到问题。 鉴于以下日期

jqGrid按如下方式排序我的日期:

 01/01/2010 01/01/2011 01/02/2010 01/02/2011 

我希望看到

 01/01/2010 01/02/2010 01/01/2011 01/02/2011 

我的日期格式是dd/mm/yyyy ,我有以下格式选项 –

 { name: 'myDate', index: 'myDate', sortable: true, sorttype: 'date' } 

我在这里错过了什么或者这是jqGrid的限制吗?

你犯了典型的错误。 问题是jqGrid期望以ISO 8601日期格式输入日期:Ymd。

如果以“dd / mm / yyyy”格式发布jqGrid的输入数据,则应 datefmt: 'm/d/Y'属性添加到列定义中。

最好的方法是以ISO格式填充网格的日期数据,并以任何其他格式转换输入,以便使用以下设置在jqGrid中显示日期

 formatter:'date', formatoptions: {newformat:'m/d/Y'}, datefmt: 'dMY' 

比较树演示的源代码: this , this和this 。

jqGrid不支持按日期时间排序,只支持按日期排序。

实际上,我发现jqGrid 确实支持按日期排序。

我们有一个JSON Web服务,其中日期(令人讨厌)以这种格式到达:

 '2/24/2015 9:48:04 AM' 

jqGrid完全有能力按日期和时间进行排序:

 colModel: [ { name: "dt", sorttype: 'date', datefmt: 'm/d/yyyy h:i:s AmPm' }, 

jqGrid_Sorting

这个特殊的应用程序使用的是jqGrid 4.4.5 (从2008年开始),所以这不是一个新function。

希望这可以帮助。

jqGrid不支持按日期时间排序,只支持按日期排序。 因此,您可以使用PDF中给出的替代方法,如下面的示例所示。 如果网格中的数据已经按日期和时间排序,并且您还有一个列,其中包含所有行的索引,如数字中的1,2,3,…. n。 您可以在索引列上对日期时间进行排序。 这将始终确保日期时间的asc或desc顺序。

您可以按其他列内容对jqGrid的日期和时间或日期进行排序。 如下面的onSortCOl示例中给出的:

  onSortCol: function(name,index) { if(name == 'createDateTime') { jQuery("#viewNotesGrid").setGridParam({sortname:"ID"}); } }