Extjs4 获取datefield时间格式问题

来源:互联网 发布:分级制度适用于网络吗 编辑:程序博客网 时间:2024/05/03 02:42
Extjs4 获取datefield时间格式问题

 在查询面板中有个时间字段,

  1.         xtype: 'datefield'
  2.         width: '200'
  3.         name: 'starttime'
  4.         id:'starttime'
  5.         fieldLabel: '开始时间'
  6.         labelAlign: 'right'
  7.         labelWidth: 55, 
  8.         format: 'Y-m-d h:i:s'
  9.         selectOnFocus:true
  10.         editable:false
  11.         dateRange:{begin:'starttime',end:'endtime'}, 
  12.         vtype:'dateRange'
  13.         endDateField: 'endtime'
  14.         anchor: '93%' 
  15.      }, 

在查询提交时,

  1.        xtype:'button'
  2.        text: '查询'
  3.        type: 'submit'
  4.        width:50, 
  5.        disabled: false,   
  6.        handler: function() { 
  7.             var starttime = Ext.getCmp("starttime").getValue(); 
  8. alert(starttime);
  9.             var store = Ext.getCmp('queryUsertariffGridPanel').getStore(); 
  10.             var proxy = store.getProxy(); 
  11.             proxy.extraParams['starttime'] = starttime; 
  12.     proxy.extraParams.start = 0; 
  13.             store.load(); 
  14.          } 
  15.  } 

页面效果为:

 

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函数,

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

然后datefield字段提交代码为:

  1.         xtype:'button'
  2.         text: '查询'
  3.         type: 'submit'
  4.         width:50, 
  5.         disabled: false,   
  6.         handler: function() { 
  7.                var starttime = Ext.getCmp("starttime").getValue(); 
  8.                var store = Ext.getCmp('queryUsertariffGridPanel').getStore(); 
  9.                var proxy = store.getProxy(); 
  10.                proxy.extraParams['starttime'] = dateFormat(starttime); 
  11.                proxy.extraParams.start = 0; 
  12.                store.load(); 
  13.          } 

传到后台的值就正常啦。没有中间那个T了。