jgGrid 在日期时间字段中显示错误的时间
jgGrid Showing wrong Time in DateTime field
我在我的一个应用程序中使用 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:10
.
这是 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"
},
我在 formatoptions
中尝试了不同的 srcformat(ISO8601Long
、UniversalSortableDateTime
、d/m/Y H:m:s
、SortableDateTime
等),但没有成功。
在这里找到截图。
来自数据库的日期时间:
date time from data base
提前致谢
已更新:
Here is the JSON date which returned to server
Microsoft 日期格式 /Date(1485158400000)/
将被最新版本的 jqGrid 自动检测到。我建议您卸载 NuGet 包 jQuery.jqGrid 4.4.4 and install free-jqGrid 4.13.6。 jqGrid 4.4.4 非常旧(4 岁)并且已经弃用很多年了。
演示 https://jsfiddle.net/OlegKi/9mz4q1gd/1/ uses free-jqGrid 4.13.6 和 colModel
中的以下属性
sorttype: "date", formatter: "date", formatoptions: { newformat: "d/m/Y H:m:s" }
您可以看到日期将以两种输入格式正确解析、格式化和排序:ISO8601 和 Microsoft Date。
更新: 我终于看到你的错误了。您在日期格式中使用了错误的分钟格式。您使用了月份而不是分钟。您应该将 newformat: "d/m/Y H:m:s"
修改为 newformat: "d/m/Y H:i:s"
。参见:https://jsfiddle.net/OlegKi/u5Lvepyu/14/
我在我的一个应用程序中使用 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:10
.
这是 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"
},
我在 formatoptions
中尝试了不同的 srcformat(ISO8601Long
、UniversalSortableDateTime
、d/m/Y H:m:s
、SortableDateTime
等),但没有成功。
在这里找到截图。
来自数据库的日期时间:
date time from data base
提前致谢
已更新:
Here is the JSON date which returned to server
Microsoft 日期格式 /Date(1485158400000)/
将被最新版本的 jqGrid 自动检测到。我建议您卸载 NuGet 包 jQuery.jqGrid 4.4.4 and install free-jqGrid 4.13.6。 jqGrid 4.4.4 非常旧(4 岁)并且已经弃用很多年了。
演示 https://jsfiddle.net/OlegKi/9mz4q1gd/1/ uses free-jqGrid 4.13.6 和 colModel
sorttype: "date", formatter: "date", formatoptions: { newformat: "d/m/Y H:m:s" }
您可以看到日期将以两种输入格式正确解析、格式化和排序:ISO8601 和 Microsoft Date。
更新: 我终于看到你的错误了。您在日期格式中使用了错误的分钟格式。您使用了月份而不是分钟。您应该将 newformat: "d/m/Y H:m:s"
修改为 newformat: "d/m/Y H:i:s"
。参见:https://jsfiddle.net/OlegKi/u5Lvepyu/14/