更改jqGrid中显示和编辑的日期格式

更改jqGrid中显示和编辑的日期格式,jqgrid,Jqgrid,我定义了以下列模型- { 名称:“from”, 索引:“from”, 格式化程序:“日期”, formatoptions:{srcformat:'ISO8601Long',newformat:'d-M-y H:i'}, 是的, edittype:'文本', 编辑选项:{ maxlengh:16, dataInit:函数(元素){ $(元素).datetimepicker({ 日期格式:'年-月-日', 时间格式:“hh:mm”, 分隔符:“”, 时区:“000” }); } } } 在网格中显

我定义了以下列模型-

{
名称:“from”,
索引:“from”,
格式化程序:“日期”,
formatoptions:{srcformat:'ISO8601Long',newformat:'d-M-y H:i'},
是的,
edittype:'文本',
编辑选项:{
maxlengh:16,
dataInit:函数(元素){
$(元素).datetimepicker({
日期格式:'年-月-日',
时间格式:“hh:mm”,
分隔符:“”,
时区:“000”
});
}
}
}
在网格中显示时,日期格式正确为“d-M-y H:i”。当我试图编辑一条记录时,表格中会填充此格式的日期,但我希望它是“Y-m-d H:I”进行编辑。如果我使用datetimepicker进行更改,则该值将更新为所需格式,但如果未编辑该值,则发布的值为“d-M-y H:I”格式


在将日期写入表单字段之前,如何更改日期的格式?我可以访问jqGrid用于转换的格式化方法吗?是否可以在填充表单字段之前使用unformat选项进行转换?我尝试了各种组合,但都没有效果。

您可以创建一个自定义格式函数来修改该值,然后创建自定义非格式化选项,以便在传输该值时使用

formatter: customFormatFunctionName,

unformat: customUnformatFunctionName,
职能:

function customFormatFunctionName(cellval, opts, rowObject, action) { ...

function customUnformatFunctionName(cellval, opts, rowObject, action) { ...

我认为您应该使用
dateFormat:'dd-M-yy'
而不是
dateFormat:'yy-mm-dd'
timeFormat:'HH:mm'
而不是
timeFormat:'HH:mm'
。它对应于您使用的格式
newformat:'d-M-y H:i'

见:


这是适合我的colModel。关键是删除了我的“date:true”编辑规则和dateformat,这是我通常为常规datepicker列准备的。此外,获得正确的格式模型始终是一个难题。我将此设置为我的用户喜欢的设置,以及我的Oracle DB最适合使用的设置……这是一次尝试和错误,并将此页面用作参考:


另外,请确保在jquery和jquery UI加载之后才包含计时器javascript。谢谢您的回复。最后,我选择了执行我认为是一个明智的(明确的)格式“YYYY MM DD”在各级。我希望“本机”格式化程序能像大多数自定义格式化程序一样,使用unformat还原编辑格式。下面的答案之一对您的解决方案有帮助吗?如果是,请将一个标记为正确。
{
name:"WMBEMSG_BEGIN_DATE", 
align:"center", 
index:"WMBEMSG_BEGIN_DATE", 
datefmt: 'mm/dd/Y HH:MM', 
editable: true, 
edittype: "text", 
editoptions: { dataInit: function(el) { $(el).datetimepicker({
    controlType: 'select',
    dateFormat: "m/d/yy",
                        timeFormat: "HH:mm"
  } ) }
   }, 
label:"Begin Date", 
width:50, 
sortable: true
}