2012-08-14 95 views
3

我被困在这里 - 最后一件事情要在生产前完成。JQGrid DateTime高级筛选器

从甲骨文未来的日期为以下格式:“2012年8月14日上午10点46分48秒”

我使用的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”

问题是,当我尝试使用高级过滤器时,它不起作用。我的猜测是因为时间关于如何解决这个问题的任何建议?

UPDATE

奥列格,我复制你贴你的改动,仍然一无所获的代码。我正在使用高级过滤器。感谢您的帮助,我真的很感激。我希望我能送你一些啤酒德国:O)

Not working sample

Working sample with full text

+0

更多信息的时间间隔进行过滤,json数据显示数据为“2012-08-14T10:46:48”。如果我在过滤器上输入2012-08-14,它过滤得很好,但如果我输入08/14/201它不 – user1409155 2012-08-14 16:33:57

回答

1

我认为主要的问题是,你使用的newformatg格式,目前不被jqGrid的支持对本地过滤/搜索。您可以尝试使用H格式。或者,您可以使用the answer中描述的修复程序。

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

enter image description here

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

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

作为the loop正文的第一行。固定版本jquery.jqGrid.src.js你可以得到here

在演示中,我用multipleSearch: true选项jqGrid searching。其结果是一个可以指定日期的像

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

区间对应的搜索对话框就会像下面的图片,你就可以按日期

enter image description here

+0

奥列格,感谢您的答复,但仍然无法正常工作。我将格式更改为H {'srcformat':'ISO8601Long','newformat':'m/d/Y - H:i'),但没有帮助过滤器只能用于输入数据来在json“2012-08-14”上。如果我试图实现其他答案,那么我必须输入所有内容,包括时间。你认为我会这样做的任何其他方式?再次感谢。 – user1409155 2012-08-14 21:13:40

+0

无论如何要为此日期列编写自定义过滤器吗? – user1409155 2012-08-15 14:27:42

+0

@ user1409155:对不起,但在应用我引用的修复程序后,在数据过滤中我看不到任何问题。我为你演示了这个演示,演示了所有工作都正常。请参阅** UPDATED **部分我的答案。 – Oleg 2012-08-15 16:32:14