2011-05-03 148 views
14

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

+0

如果使用標準GMT日期格式,排序順序如何?在我眼中,jgrid使用它進行排序。 – reporter 2011-05-03 10:25:16

回答

22

你犯了典型的錯誤。問題是jqGrid需要輸入日期格式爲ISO 8601的日期格式:Y-m-d。

如果您在「DD/MM/YYYY」格式的jqGrid後的輸入數據,你應該datefmt: 'm/d/Y'屬性添加到列定義。

最好的辦法是,以填補在ISO格式電網的最新數據,並輸入轉換成其他格式只使用以下設置

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

顯示在jqGrid的日期比較樹演示的源代碼:thisthisthis

+0

非常好,謝謝你的幫助:-) – 2011-05-03 11:07:46

+0

@Gilbert Liddell:不客氣! – Oleg 2011-05-03 11:25:25

+2

@Gilbert Liddell:還有一個一般的評論。我看到你不會使用你的「投票」權利,你以15個聲望點開始。我認爲你應該知道一件重要的事情。 [Here](http://stackoverflow.com/faq#howtoask),你可以找到一個簡單的規則:「當你看到你的問題的新答案,通過點擊答案左側的向上指向箭頭來投票贊成有用的答案「。 「被接受的」和**未投票的**問題將被大多數解釋爲「封閉」,並且將被搜索引擎放在最後的位置,因爲答案被解釋爲**沒有幫助**。 – Oleg 2011-05-03 11:29:48

1

jqGrid不支持按日期時間排序,而是按日期排序。因此,您可以使用PDF中給出的替代方法,例如下面的示例中所示。如果網格中的數據已按日期和時間排序,並且您還有一列,其中所有行的索引都與Numbers中一樣爲1,2,3,... n。您可以在索引列上對日期時間進行排序。這將始終確保日期時間的asc或desc順序。

您可以通過另一列內容對jqGrid的日期和時間或日期進行排序。比如下面的例子中給出的onSortCOl:

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

的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年)所以這不是一個新功能。

希望這會有所幫助。

+0

非常感謝,這件作品很有魅力。 – 2016-02-17 13:25:59

+0

我有個日期,比如'9/24/2015 10:05:47 AM','1/3/2015 6:53:00 AM'所以你認爲格式應該是'm/d/yyyy h: ii:ss AmPm' – 2016-02-17 13:29:35

+1

我認爲它應該是「m/d/yyyy h:我:AmPm」,但我可能是錯的。試試看看。根據他們的文檔,jqGrid使用PHP日期格式,所以你可以使用它作爲參考:http://php.net/manual/en/function.date.php – 2016-02-18 07:19:01