jqGrid - 日期&时间格式未应用

时间:2013-05-21 13:42:03

标签: jquery sql datetime jqgrid formatting

我有一个显示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中的设置?非常感谢任何帮助。

谢谢! 小号

2 个答案:

答案 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

有关

格式的更多信息

http://www.sql-server-helper.com/tips/date-formats.aspx