3

我被困在这里 - 在开始生产之前要做的最后一件事。

来自 oracle 的日期格式如下:“8/14/2012 10:46:48 AM”

我在 jqgrid 上使用以下内容:

{ name: 'CreationDate', index: 'CreationDate', formatter: 'date', formatoptions:    { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }, sorttype: 'date', width: 95, align: 'right', resizable: false },

我在网格上显示以下内容:“08/14/2012 - 10:46AM”

问题是当我尝试使用高级过滤器时它不起作用。我的猜测是因为时间问题,有什么建议可以解决这个问题吗?

更新

奥列格,我复制了您发布的代码以及您的更改,但仍然没有。我正在使用高级过滤器。感谢您的所有帮助,我真的非常感谢。我希望我能给你送些啤酒去德国:o)

不工作样本

带有全文的工作示例

4

1 回答 1

1

我认为主要问题是您使用jqGrid 目前不支持其中的格式进行本地过滤/搜索gnewformat您可以尝试改用H 格式。或者,您可以使用答案中描述的修复程序。

更新演示formatter: 'date', formatoptions: { 'srcformat': 'ISO8601Long', 'newformat': 'm/d/Y - g:i A' }显示,在应用我引用的修复程序后,可以使用高级搜索对话框。您可以尝试演示并输入10/04/2012 - 5:55 PM我在下图中使用的相同数据()。您必须看到以下结果:

在此处输入图像描述

更新 2:在为您准备另一个演示期间,我在内部parseDate函数中发现了另一个错误。parseDate问题是,只有当需要解析的日期包含与指定格式相同的元素时,函数的当前实现才能正确工作。例如,使用格式10/04/2012将错误地解析日期。'm/d/Y - g:i A'要修复错误,可以包含以下行

if(typeof date[k] === "undefined") { continue; }

作为循环体的第一行。你的固定版本jquery.jqGrid.src.js可以到这里

在演示中,我使用jqGrid 搜索multipleSearch: true选项。结果,可以指定日期的间隔,例如

10/04/2012 <= x <= 10/05/2012

相应的搜索对话框将如下图所示,您将能够按日期间隔进行过滤

在此处输入图像描述

于 2012-08-14T20:17:53.050 回答