【发布时间】:2015-08-31 07:59:22
【问题描述】:
在过去几个月遇到这个问题几次之后(我总是忘记这个问题的根源是什么),我决定在这里发布我的问题和答案。
这是关于colModel 中可排序日期列的问题;这里是一个简单的例子:
{
name:'my_date', index:'my_date', width:100, search: false, sort: true,
sorttype: 'date', formatter: 'date',
formatoptions: {srcformat: 'Y-m-d', newformat: 'd.m.Y'}
}
当试图通过在 jqgrid 中单击其标题来对该列进行排序时,我不断收到此错误:
未捕获的 TypeError: u.parseDate.call(...).getTime 不是函数
我在网上到处搜索,但找不到任何东西。与 jqGrid 结合出现此错误似乎是非常罕见的情况。
我仔细检查了 jqGrid 中的所有内容,但似乎没有错。
更新
自从我接受了 Oleg 的回答后,这就是导致问题的原因和我的解决方法:
查看数据库中的数据后,我看到日期列中有很多“零日期”。较旧的 MySQL 数据库通常使用它而不是 NULL:“0000-00-00”或“0000-00-00 00:00:00”。
事实证明这是导致问题的原因 - jqgrid 无法处理这些“零日期”。所以我所要做的就是操纵我的 MySQL 结果集:
CASE WHEN `my_date` = '0000-00-00' THEN ''
ELSE `my_date`
END `my_date`
【问题讨论】:
标签: javascript jquery mysql jqgrid free-jqgrid