您的位置:首页 > Web前端 > JavaScript

Extjs4 获取datefield时间格式问题

2012-03-07 10:16 295 查看
在查询面板中有个时间字段,

{
xtype: 'datefield',
width: '200',
name: 'starttime',
id:'starttime',
fieldLabel: '开始时间',
labelAlign: 'right',
labelWidth: 55,
format: 'Y-m-d h:i:s',
selectOnFocus:true,
editable:false,
dateRange:{begin:'starttime',end:'endtime'},
vtype:'dateRange',
endDateField: 'endtime',
anchor: '93%'
},

在查询提交时,

{
xtype:'button',
text: '查询',
type: 'submit',
width:50,
disabled: false,
handler: function() {

var starttime = Ext.getCmp("starttime").getValue();

alert(starttime);
var store = Ext.getCmp('queryUsertariffGridPanel').getStore();
var proxy = store.getProxy();

proxy.extraParams['starttime'] = starttime;
proxy.extraParams.start = 0;
store.load();
}
}

页面效果为:





alert出来的时间值格式为:





后台action中获取到的为“2012-03-05T00:00:00”。

查了查API,发现datefield有个配置字段:

submitFormat : String

The date format string which will be submitted to the server.

The format must be valid according to Ext.Date.parse (defaults to format).

但它是支持的submit方式直接提交到后台的,而不是Ext.getCmp("").getValue();

后来加了个js函数,

//将时间转化为 2011-08-20 00:00:00 格式
//解决Ext4的formPanel通过grid的store查询问题 2012.2.22 jzr
function dateFormat(value){
if(null != value){
return Ext.Date.format(new Date(value),'Y-m-d H:i:s');
}else{
return null;
}
}

然后datefield字段提交代码为:

{
xtype:'button',
text: '查询',
type: 'submit',
width:50,
disabled: false,
handler: function() {
var starttime = Ext.getCmp("starttime").getValue();
var store = Ext.getCmp('queryUsertariffGridPanel').getStore();
var proxy = store.getProxy();
proxy.extraParams['starttime'] = dateFormat(starttime);
proxy.extraParams.start = 0;
store.load();
}
}

传到后台的值就正常啦。没有中间那个T了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息