我被困在这里 - 生产前要做的最后一件事。
来自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:46 AM”
问题是当我尝试使用高级过滤器时,它不起作用。我的猜测是因为时间,关于如何解决这个问题的任何建议?
更新
Oleg,我复制了你发布的代码并且仍然没有。我正在使用高级过滤器。谢谢你的帮助,我真的很感激。我希望我能给你一些啤酒给德国:o)
答案 0 :(得分:1)
我认为主要问题是您在g
内部使用newformat
格式,而jqGrid目前不支持本地过滤/搜索。您可以尝试使用H
格式。或者,您可以使用the answer中描述的修补程序。
更新:The demo显示在应用我引用的修补程序后,可以使用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; }
作为the loop正文的第一行。 jquery.jqGrid.src.js
的固定版本可以获得here。
在演示中,我使用了jqGrid searching的multipleSearch: true
选项。结果,可以指定日期的间隔,如
10/04/2012 <= x <= 10/05/2012
相应的搜索对话框如下图所示,您可以按日期间隔进行过滤