我有一个显示3列的jqGrid,其中一列是日期时间(正在返回的SQL Datetime字段)。 colModel设置如下:
colModel:[
{name:"col1",....,sortable:false},
{name:"col2",....,sortable:false},
{name:"SendTime",index:"SendTime",width:col3width,align:"left",formatter:"datetime",formatoptions:{srcformat:"ISO8601Long",newformat:"LongTime"},xmlmap:"SendTime",sortable:false}
],
从SQL返回的日期采用以下格式:
YYYY-MM-DDTHH:mm:ss
jqGrid中的所有字段都不可排序,SQL ORDER BY
控制返回数据的顺序。
我想更改返回的日期格式,省略其中间的“T” - YYYY-MM-DD HH:mm:ss
。如果我不能这样做,我会考虑只是格式化的军事时间。我在colModel设置中尝试了几种格式选项,但只是成功格式化了日期或时间,但不能同时进行两种格式化。
这需要自定义格式化程序,还是我忽略了jqGrid中的设置?非常感谢任何帮助。
谢谢! 小号
答案 0 :(得分:5)
jqGrid已预定义formatter:"date"
,但没有formatter:"datetime"
(请参阅the documentation)。因此,您应该修改格式化程序的名称以使其正常工作。
jqGrid的最新版本支持YYYY-MM-DDTHH:mm:ss
,而不仅仅是YYYY-MM-DD HH:mm:ss
。因此,您无需在后端进行任何更改。
您应该考虑使用sorttype: "date"
代替。如果您使用loadonce: true
或使用datatype: "local"
。
答案 1 :(得分:0)
与其尝试将jqgrid格式设为日期,您可以使用sql CONVERT
在将其放入为网格提供的数据集之前对其进行格式化。我不知道你在使用什么SQL,但是在SQL Server中:
SELECT CONVERT(VARCHAR(19), GETDATE(), 120)
最终看起来像
2013-05-21 10:18:39
有关
格式的更多信息