jgGrid显示错误的时间日期时间字段

问题描述:

我在我的应用程序的一个使用的jqGrid。在此我已在此d/m/Y H:m:s(Ex 01/12/2011 14:59:10)中显示日期。我得到正确的格式,但它显示错误的时间(分钟) 这样的:我收到日期时间形式的数据库是01/12/2011 14:59:10,但它显示01/12/2011 14:12:10jgGrid显示错误的时间日期时间字段

这是jqGrid的代码:

url: "/DigitalJobMonitoring/GetFailedGridData", 
datatype: 'json', 
mtype: 'Get', 
colNames: ['Sr.No', 'Job Name', 'Server Name', 'Status', 'Last Run Time'], 
colModel: [ 
    { key: true, width: 50, resizable: false, name: 'SerialNumber', index: 'SerialNumber', sorttype: 'integer' }, 
    { key: false, width: 300, resizable: false, name: 'JobName', index: 'JobName', sorttype: 'text' }, 
    { key: false, width: 100, resizable: false, name: 'ServerName', index: 'ServerName', sorttype: 'text' }, 
    { key: false, width: 100, resizable: false, name: 'Status', index: 'Status', sorttype: 'text' }, 
    { key: false, width: 150, resizable: false, name: 'LastRunTime', index: 'LastRunTime', sorttype: 'date', formatter: 'date', formatoptions: { srcformat: "d/m/Y H:m:s", newformat: "d/m/Y H:m:s" }, searchoptions: { dataInit: initDateSearch } }], 
search: true, 
searchOnEnter: true, 
pager: '#failedRunningPager', 
height: '100%', 
caption: 'Failed/Running Jobs', 
emptyrecords: 'No records to display', 
jsonReader: { 
    root: "rows", 
    page: "page", 
    total: "total", 
    records: "records", 
    repeatitems: false, 
    SerialNumber: "0" 
}, 

我曾尝试用不同的srcformat (ISO8601LongUniversalSortableDateTimed/m/Y H:m:sSortableDateTime等)formatoptions但没有运气。 在这里找到屏幕截图。从数据库 日期时间:

date time from data base

在此先感谢

更新时间:

Here is the JSON date which returned to server

+0

您使用哪个版本的jqGtid(可以使用)以及从哪个版本的jqGrid([免费jqGrid](https://github.com/free-jqgrid/jqGrid),商业版[Guriddo jqGrid JS] http://guriddo.net/?page_id=103334)或版本 Oleg

+0

我使用版本 “4.4.4”()。我已经添加了JSON数据返回代码请找到。 –

+0

你添加的是*不是JSON数据*。它是C#代码的片段,其中'failedRunningResults'不清楚,JSON序列化的设置也不清楚。您可以使用IE/Chrome/Firefox的开发工具,单击网络选项卡并重新加载网格。你会看到HTTP跟踪。查找对'/ DigitalJobMonitoring/GetFailedGridData'的请求并检查HTTP正文,您将看到确切的JSON数据,它将返回服务器。 – Oleg

微软日期格式/Date(1485158400000)/将自动被新版本的jqGrid的检测。我建议您卸载NuGet软件包jQuery.jqGrid 4.4.4并安装free-jqGrid 4.13.6。 4.4.4 jqGrid的是很老(4岁)和多年以来它已过时。

演示https://jsfiddle.net/OlegKi/9mz4q1gd/1/使用free-jqGrid 4.13.6和colModel

sorttype: "date", formatter: "date", formatoptions: { newformat: "d/m/Y H:m:s" } 

你可以看到,日期将被正确解析,格式化并在两个输入格式整理以下属性:ISO8601和Microsoft日期。

更新:我终于看到你的错误。您在日期格式中使用错误格式,分钟为。你用了一个月而不是几分钟。您应该修复newformat: "d/m/Y H:m:s"newformat: "d/m/Y H:i:s"。请参阅:https://jsfiddle.net/OlegKi/u5Lvepyu/14/

+0

我已经卸载jQuery.jqGrid 4.4.4并安装了free-jqGrid 4.13.6。尝试使用你的演示,但仍然没有运气得到与以前相同的结果。我已经尝试通过将日期时间字段转换为字符串,然后我得到正确的日期和时间,就像字符串,但在这种情况下排序越来越问题,因为我们不喜欢日期排序字符串。 –

+0

@AshokDavuluri:抱歉,我无法调试您发布的图片。演示https://jsfiddle.net/OlegKi/9mz4q1gd/1/,包括在我的答案中使用JSFiddle的Echo服务:'url:“/ echo/json /”,数据类型:“json”,mtype:“POST “,postData:{json:JSON.stringify(serverResponse)}'。你可以用**你的数据替换'serverResponse'或'JSON.stringify(serverResponse)',并修改'colModel'给年轻人。通过这种方式,您可以使用测试数据准备演示*,并且可以对其进行调试。 – Oleg

+0

谢谢,但没有运气。我准备了一个演示,我的JSON数据在我的应用程序中返回到服务器,请找到它[jsfiddle.net/ashok4004/u5Lvepyu/10/](https://jsfiddle.net/ashok4004/u5Lvepyu/10/)我是在JSFiddle的结果选项卡中没有获取网格。请将我的示例数据放在demo serverResponse中,并尝试调试并让我知道是否需要任何信息。 –