gpt4 book ai didi

javascript - jqGrid日期排序(本地)不起作用

转载 作者:行者123 更新时间:2023-11-28 09:05:13 25 4
gpt4 key购买 nike

我知道这里有很多针对此类问题的答案,但它们似乎都有一些独特的情况。然而,就我而言,这应该是一件非常简单的事情,因为我没有对日期做任何奇怪的事情,但我无法让日期排序工作。

这是我从 JSON 获得的数据(部分经过编辑,因为这是一个公司项目)。

{"rows": [
{"cell": [ "140935", ..., "19/06/2013 3:17:02 PM", ... ]},
{"cell": [ "140894", ..., "19/06/2013 10:01:57 AM", ... ]},
{"cell": [ "140803", ..., "18/06/2013 11:50:01 AM", ... ]},
{"cell": [ "140008", ..., "10/06/2013 12:44:44 PM", ... ]},
{"cell": [ "138280", ..., "28/05/2013 11:57:19 AM", ... ]},
{"cell": [ "118286", ..., "15/11/2012 7:13:19 PM", ... ]}
]}

正如您所看到的,当我从服务器获取它时,它已经排序了。问题是,当我在表中使用排序时,它会搞砸,2013 年 5 月 28 日的日期会比 6 月的日期“晚”。这是屏幕截图。 May date ends up "later" than June date

这是我用来生成此代码的 jqGrid 代码(为了简洁起见,我对其进行了部分编辑,但我认为我没有删除任何会影响此问题的内容)。

我首先将列名称和列模型设置为变量,以保持整洁。

cnames = ['ID', _company, _location, ... _createdon..],
cmodel = [
{ name:'ticketId', index:'ticketId', key:true, width:60, align:'center',
sorttype:'int', fixed:true, resizable:false, editrules:{ edithidden:true }
},
{ name:'company', index:'company', width:117, editrules:{edithidden:true} },
{ name:'location', index:'location', width:94, editrules:{edithidden:true} },
...
{ name:'CreatedOn', index:'CreatedOn', width:85, sorttype:'date',
datefmt:'m/d/Y h:i:s A', fixed:true, editrules:{edithidden:true, date:true} },
...
]

因此,日期格式 m/d/Y h:i:s A 与我从服务器 15/11/2012 7:13:19 PM 获取的日期数据匹配 >.

然后我像这样加载 jqGrid

ticketsTable = tableWrap.jqGrid({
url: urlTicketHandler + '?method=GetTickets&' + filtersData,
mtype: 'GET',
datatype: 'json',
colNames: cnames,
colModel: cmodel,
height: 'auto',
rowNum: 1000,
autowidth: true,
sortname: 'priority',
sortorder: 'desc',
pgbuttons: false,
pginput: false,
pgtext: '',
viewrecords: true,
altRows: true,
loadonce: true,
scrollOffset: 0,
hidegrid: false,
caption: _tickets,
toppager: true,
pager: '#ticketsList_footer',
prmNames: {page:null, rows:null, search:null},
viewsortcols: [true,'vertical',true],
recordtext: _showingxt + ' {2} ' + _tickets,
gridview: true,
ignoreCase: true,
multiselect: hasFullAccess,
loadComplete: function(d) {
if (firstLoad) {
firstLoad = false;
if (isColState && myColumnsState.permutation.length) {
$(this).jqGrid("remapColumns", myColumnsState.permutation, true);
}
}
saveColumnState.call($(this), this.p.remapColumns);
}
});

我认为这里唯一可能导致任何问题的是列保存部分(我没有在此处包含整个功能,但我不确定它实际上是否相关,我从 jqGrid 自己的网站上获取了它)。

我省略了在其他列上执行的一些格式设置,但我没有触及日期列。我还省略了一些向表格添加自定义按钮的函数,但我再次认为这并不重要。

我这里缺少什么吗?

最佳答案

我已经记不清有多少次我试图弄清楚到底发生了什么。当然,遵循墨菲定律,直到我把它发布到 Stackoverflow 上,我才终于看到了我在编写日期格式时犯的一个非常简单、非常尴尬的错误。当然,现在它就在那里,在公共(public)场合,在互联网上,永远向所有人展示我的耻辱。没有什么可说的叹息

关于javascript - jqGrid日期排序(本地)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com