1

我在我的應用程序的一個使用的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)或版本<= 4.7中的舊jqGrid)?你可以包含從'url:「/ DigitalJobMonitoring/GetFailedGridData''返回的測試JSON數據嗎?您所包含的圖片僅包含*您的服務器代碼中的一些數據,但尚不清楚您的服務器以何種格式返回數據(如何序列化數據)。 – Oleg

+0

我使用版本 「4.4.4」(<包ID = 「jQuery.jqGrid」 版本= 「4.4.4」 targetFramework = 「net45」/>)。我已經添加了JSON數據返回代碼請找到。 –

+0

你添加的是*不是JSON數據*。它是C#代碼的片段,其中'failedRunningResults'不清楚,JSON序列化的設置也不清楚。您可以使用IE/Chrome/Firefox的開發工具,單擊網絡選項卡並重新加載網格。你會看到HTTP跟蹤。查找對'/ DigitalJobMonitoring/GetFailedGridData'的請求並檢查HTTP正文,您將看到確切的JSON數據,它將返回服務器。 – Oleg

回答

0

微軟日期格式/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中,並嘗試調試並讓我知道是否需要任何信息。 –