2

我有一个显示 3 列的 jqGrid,其中之一是日期时间(正在返回的 SQL 日期时间字段)。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 中的所有字段都不可排序,并且 SQLORDER BY控制返回数据的顺序。

我想更改返回的日期格式以省略中间的“T” - YYYY-MM-DD HH:mm:ss。如果我不能这样做,我会考虑只使用格式化的军事时间。我在 colModel 设置中尝试了几个格式选项,但只成功地格式化了日期或时间,但不能同时格式化两者。

这是否需要自定义格式化程序,还是我忽略了 jqGrid 中的设置?将不胜感激任何帮助。

谢谢!小号

4

2 回答 2

5

jqGrid 有预定义formatter:"date"的,但没有formatter:"datetime"(参见文档)。因此,您应该修复格式化程序的名称以使其正常工作。

jqGrid 的最新版本不仅YYYY-MM-DDTHH:mm:ss支持YYYY-MM-DD HH:mm:ss. 因此,您无需在后端进行任何更改。

你应该考虑sorttype: "date"改用。如果您使用loadonce: true或使用datatype: "local".

于 2013-05-21T13:58:41.980 回答
0

与其尝试将 jqgrid 格式化为日期,不如使用 sqlCONVERT在将其放入为 grid 提供数据的数据集之前对其进行很好的格式化。我不知道您使用的是什么 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

于 2013-05-21T14:19:00.597 回答