【问题标题】:jqGrid not sorting dates correctlyjqGrid 没有正确排序日期
【发布时间】:2011-05-03 10:13:58
【问题描述】:

我在使用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 的限制?

【问题讨论】:

  • 如果您使用标准 GMT 日期格式,排序顺序将如何?在我看来,jgrid 使用它进行排序。

标签: jquery jqgrid


【解决方案1】:

你犯了典型的错误。问题是 jqGrid 需要 ISO 8601 日期格式的日期输入:Y-m-d。

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

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

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

比较树演示的源代码:thisthisthis

【讨论】:

  • @Gilbert Liddell:再说一句一般性的话。我看到您没有使用从 15 个声望点开始的“投票”权利。我认为你应该知道一件重要的事情。 Here 您可以找到一条简单的规则:“当您看到问题的新答案时,请点击答案左侧的向上箭头,为有帮助的答案投票。” “已接受”和未投票问题将主要解释为“已关闭”,并将被搜索引擎放置在最后一个位置,因为答案被解释为没有帮助 b>.
【解决方案2】:

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

其实我发现jqGrid确实支持按日期时间排序。

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

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

jqGrid 完全能够使用以下方法按日期和时间排序:

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

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

希望这会有所帮助。

【讨论】:

  • 我有一个类似9/24/2015 10:05:47 AM1/3/2015 6:53:00 AM 的日期,所以你认为格式应该是m/d/yyyy h:ii:ss AmPm
  • 我认为应该是“m/d/yyyy h:i:s AmPm”,但我可能错了。试试看。根据他们的文档,jqGrid 使用 PHP 日期格式,因此您可以将此作为参考:php.net/manual/en/function.date.php
  • 感谢您的参考,我使用了这种格式,但它仍然会弄乱排序。
  • 正如我在上面的 cmets 中提到的我的日期格式,在参考 php 链接后,我的格式必须是 n/j/Y g:i:s A 但 Jqgrid 甚至无法识别它,最终对我有用的是m/d/Y h:i:s AmPm
【解决方案3】:

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

您可以通过另一个 Column 内容对 jqGrid 的 DATE 和时间或日期进行排序。比如下面关于 onSortCOl 的例子:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2022-08-14
    • 2011-05-03
    • 2019-12-14
    • 2013-09-26
    • 2015-02-14
    相关资源
    最近更新 更多